Foros
Nuevos mensajes
Buscar en foros
Acceder
Regístrate
Novedades
Buscar
Buscar
Buscar solo en títulos
De:
Menú
Acceder
Regístrate
Install the app
Instalar
Foros
Software de Gestión
Business Intelligence
Problema creando un Query Item en Cognos 8 Framework Manager
JavaScript está desactivado. Para una mejor experiencia, por favor, activa JavaScript en el navegador antes de continuar.
Estás utilizando un navegador obsoleto. Este u otros sitios web pueden no ser mostrados correctamente.
Debes actualizarlo o utilizar un
navegador alternativo
.
Responder al tema
Mensaje
<blockquote data-quote="mleyzaola" data-source="post: 9533" data-attributes="member: 10618"><p>Hola,</p><p></p><p>Lo puedes hacer en el Framework Manager sin problemas pero debes modificar las opciones del Query. En lugar de ser Cognos que es el default, debes cambiarlo por Native. Esto lo encuentras en la definicion del query y luego TEST --> OPTIONS --> SQL SETTINGS. Probablemente deberas cambiar el nombre de la tabla tambien, ya que Cognos normalmente te pone los alias que hayas definido en la conexion y en la tabla. Nada mas verifica que el nombre de la tabla coincide exactamente con la tabla real de tu base de datos.</p><p></p><p>Aunque asi funcionara, lo mas recomendable es que en lugar de apuntar a tablas desde el FM, apuntes a vistas. Esto te permitira hacer cualquier operacion SQL soportada o no por Cognos desde la base, que finalmente es quien se encarga de hacer el trabajo, no Cognos. Asi evitarias modificar los parametros de default de los queries, como en este caso.</p><p></p><p>Una recomendacion mas, y no quiero sonar pesado. ¿Sabias que tu query esta haciendo una consulta a la tabla FERIADOS para cada renglon que consulta de la tabla TICKETS? Esto se llama funciones escalares y la verdad no las recomiendo en lo mas minimo. Si tienes 100 registros, pues no vas a ver la diferencia, pero si son algunos cientos de miles para arriba, se va a notar y mucho.</p><p></p><p>Lo correcto es que encontraras la relacion entre ambas tablas y mejor calcula en un campo la diferencia en dias. Algo asi:</p><p></p><p><strong>Oracle</strong></p><p>SELECT CASE WHEN F.FechaFeriado > T.FechaTicket THEN TRUNC(F.FechaFeriado - T.FechaTicket) ELSE 0 END AS CantFeriados</p><p></p><p><strong>Sql Server</strong></p><p>SELECT CASE WHEN F.FechaFeriado > T.FechaTicket THEN DATEDIFF(dd, T.FechaTicket, F.FechaFeriado) ELSE 0 END AS CantFeriados</p><p></p><p>Espero que te haya servido de ayuda. Saludos!</p></blockquote><p></p>
[QUOTE="mleyzaola, post: 9533, member: 10618"] Hola, Lo puedes hacer en el Framework Manager sin problemas pero debes modificar las opciones del Query. En lugar de ser Cognos que es el default, debes cambiarlo por Native. Esto lo encuentras en la definicion del query y luego TEST --> OPTIONS --> SQL SETTINGS. Probablemente deberas cambiar el nombre de la tabla tambien, ya que Cognos normalmente te pone los alias que hayas definido en la conexion y en la tabla. Nada mas verifica que el nombre de la tabla coincide exactamente con la tabla real de tu base de datos. Aunque asi funcionara, lo mas recomendable es que en lugar de apuntar a tablas desde el FM, apuntes a vistas. Esto te permitira hacer cualquier operacion SQL soportada o no por Cognos desde la base, que finalmente es quien se encarga de hacer el trabajo, no Cognos. Asi evitarias modificar los parametros de default de los queries, como en este caso. Una recomendacion mas, y no quiero sonar pesado. ¿Sabias que tu query esta haciendo una consulta a la tabla FERIADOS para cada renglon que consulta de la tabla TICKETS? Esto se llama funciones escalares y la verdad no las recomiendo en lo mas minimo. Si tienes 100 registros, pues no vas a ver la diferencia, pero si son algunos cientos de miles para arriba, se va a notar y mucho. Lo correcto es que encontraras la relacion entre ambas tablas y mejor calcula en un campo la diferencia en dias. Algo asi: [b]Oracle[/b] SELECT CASE WHEN F.FechaFeriado > T.FechaTicket THEN TRUNC(F.FechaFeriado - T.FechaTicket) ELSE 0 END AS CantFeriados [b]Sql Server[/b] SELECT CASE WHEN F.FechaFeriado > T.FechaTicket THEN DATEDIFF(dd, T.FechaTicket, F.FechaFeriado) ELSE 0 END AS CantFeriados Espero que te haya servido de ayuda. Saludos! [/QUOTE]
Nombre
Verificación
¿Cual es la Capital de España?
Responder
Foros
Software de Gestión
Business Intelligence
Problema creando un Query Item en Cognos 8 Framework Manager
Arriba