FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Consulta en Firebird 2.1 e Interbase 7.5
Hola a tod@s !
Me he topado con que esta consulta me funciona en Interbase 7.5 pero no me funciona en Firebird 2.1
Sin entrar demasiado en detalles de qué es lo que devuelve la consulta, voy al error que me lanza Firebird cuando ejecuta la consulta : 'Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).' El error está en el campo coloreado en negrita. Al parecer no puedo incluir ese campo que es parte de la consulta posterior en Firebird, en cambio en interbase si me lo permite. Si cambio BO.CATEGORYNO en la subconsulta de la suma por un valor cualquiera (p.ej. 1) si me funciona en Firebird. A lo mejor alguien me puede ayudar en la solución para Firebird. Lo que trato es de obtener junto con una consulta agrupada por tres campos diferentes, el número total de registros (en la subconsulta) por cada una de esas agrupaciones. Gracias por vuestros consejos
__________________
Piensa siempre en positivo ! |
#3
|
|||
|
|||
Hola
Lo que yo veo es que te sobra el group by, en la sentencia no tienes ninguna funcion de agregado Prueba sin el group by |
#4
|
||||
|
||||
Gracias a los dos por contestar.
Ninguna de las dos opcines me soluciona el asunto. Si pongo group by 1, 2, 3 me devuelve el mismo error. Y sí, si que tengo que agrupar porque si no me daría toda una lista individual de registros. Intentaré explicar de nuevo el sentido de la consulta : en una tabla (BOOKINGS_OBJECTS_TEMP) tengo una serie de registros (pueden ser miles) los cuales quiero obtener agrupados por los tres campos indicados. Una vez obtenidos estos grupos, necesitaría obtener de otra tabla diferente (OBJECTS) el número de registros que cumplen la condición de uno de los campos que obtengo en la 1ª consulta agrupada (en este caso el campo a considerar sería CATEGORYNO que es devuelto en la 1ª consulta). Por eso utilizé una consulta anidada, en la cual la subconsulta utiliza una de los campos devueltos por la consulta principal. En Interbase funciona correctamente, pero en Firebird 2.1 me devuelve el error descrito. Al parecer precisamente por plantearlo de la manera que lo planteo, es decir, utilizar un campo de la consulta principal agrupada en la subconsulta. Está claro que lo podría hacer en dos consultas independientes. Pero ese no era el objetivo de este hilo. Es averiguar por qué una cosa que me funcionaba correctamente en Interbase no la puedo utilizar de la manera prevista en Firebird, y como resolverlo. Gracias de nuevo por vuestra ayuda.
__________________
Piensa siempre en positivo ! |
#5
|
||||
|
||||
Basta con cambiar BO.CATEGORYNO por CA2.CATEGORYNO. Así funciona correctamente la consulta. Al parecer Firebird 2.1 no entiende la referencia (asunto que realmente es correcto) a BO.CATEGORYNO como campo devuelto por BOOKINGS_OBJECTS_TEMP cuyo alias es BO, sino al ser un campo devuelto por el left join de la consulta principal (CATEGORIES) cuyo alias es CA2, pues por lo visto, y vuelvo a decir que con razón, hay que referenciarlo por los alias como CA2 y no como BO, al igual que lo referencia en el Select propio o en el Group By. Vamos, que Firebird me ha detectado realmente un error de referencias que Interbase acepta.
__________________
Piensa siempre en positivo ! |
#6
|
|||
|
|||
Hola
Pero no entiendo que hace el left join de la subconsulta yo haria join sin left Tampoco entiendo porque no te funciona tal como lo tienes porque lo veo bien Saludos |
#7
|
||||
|
||||
Con el 'distinct' funciona también correctamente, gracias
__________________
Piensa siempre en positivo ! |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Consulta en Interbase | rruffino | Conexión con bases de datos | 4 | 25-04-2007 23:06:56 |
consulta de interbase | ivanloco | Varios | 1 | 27-11-2006 21:33:30 |
Consulta interbase | ivanloco | Firebird e Interbase | 2 | 22-11-2006 17:16:01 |
Consulta SQL de interbase con delphi 7 | Durbed | Conexión con bases de datos | 2 | 24-11-2004 15:08:31 |
Consulta Interbase | trex2000 | Conexión con bases de datos | 1 | 26-09-2004 14:43:14 |
|