FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problemas con GROUP BY en firebird
Hola buenas.
Resulta que estoy haciendo una aplicación para gestionar un videoclub, y me interesaría que me hiciera un ranking con los juegos más alquilados. Para ello uso la siguiente consulta, la cual me da un fallo sobre la cláusula GROUP BY: Código:
SELECT JUEGOS.NOMBRE,JUEGOS.PLATAFORMA,SUM(JUEGOS.NOMBRE) AS SUMA FROM ALQUILER INNER JOIN JUEGOS ON (ALQUILER.ID_JUEGO = JUEGOS.ID_JUEGO) GROUP BY JUEGOS.NOMBRE ORDER BY JUEGOS.NOMBRE DESC No he conseguido solucionarlo, máxime cuando mi gestor de base de datos me dice que es correcta, y la he usado muchas otras veces con Oracle o MySQL. Igualmente, he intentado hacer un LIMIT 3, pero también me devuelve error, teniendo que controlar los resultados por código desde Delphi. Uso Delphi 7 + Firebird + FIBPlus. ¿Alguna sugerencia? Gracias anticipadas.
__________________
IncestoCanibal.com |
#2
|
|||
|
|||
si tu dices que la misma consulta te ha funcionado en otros SGBD... te creo, pero toda cláusula GROUP BY ha de contener los mismos campos que la SELECT a excepción de los agregados
Código:
SELECT JUEGOS.NOMBRE,JUEGOS.PLATAFORMA,SUM(JUEGOS.NOMBRE) AS SUMA FROM ALQUILER INNER JOIN JUEGOS ON (ALQUILER.ID_JUEGO = JUEGOS.ID_JUEGO) GROUP BY JUEGOS.NOMBRE, JUEGOS.PLATAFORMA ORDER BY JUEGOS.NOMBRE DESC |
#3
|
||||
|
||||
Cita:
que versión de Oracle usas??? Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#4
|
|||
|
|||
Pues esa consulta concreta no lo sé, me refería al GROUP BY. No sabía que tenía que llevar los mismos campos que usas en el SELECT. Igualmente, yo he usado muchas veces un SELECT con muchos campos, y en el GROUP BY sólo el que me interesa, bajo MySQL, y funciona perfectamente. Juraría, a que con Oracle también. He usado la 8i Developer, aunque no en profundidad.
__________________
IncestoCanibal.com |
#5
|
||||
|
||||
Hola.
Cita:
Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#6
|
||||
|
||||
Cita:
Pues no, yo se asegurarte que en Oracle también tenes que listar todos los campos en el group by. A diferencia de interbase, podes usar funciones, cálculos, etc. e incluirlos en el group by... salvo las funciones agregadas o estadísticas, por supuesto. Por cierto, yo no conozco la 8i developer (que estoy seguro que no varia en su comportamiento... ) pero esto que afirmo si lo tengo bien probado en la 7.3.x (personal y enterprise), en la 8i (personal y enterprise) y en la 9i enterprise.... Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#7
|
||||
|
||||
Hola.
Cita:
Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#8
|
|||
|
|||
Jo, pues si que me estoy enterando de cosas !!
Y yo que pensaba que sabía un poquito de SQL...
__________________
IncestoCanibal.com |
|
|
|