Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

error en group by

Estas en el tema de error en group by en el foro de Bases de Datos General en Foros del Web. buen dia. quisiera ver si alguien le a pasado la siguiente situación y cual fue la forma en la que la resolvió , me seria ...
  #1 (permalink)  
Antiguo 14/04/2014, 16:09
 
Fecha de Ingreso: noviembre-2010
Ubicación: en las nubes
Mensajes: 56
Antigüedad: 14 años
Puntos: 3
error en group by

buen dia.

quisiera ver si alguien le a pasado la siguiente situación y cual fue la forma en la que la resolvió , me seria de mucha ayuda.
bueno primero es sobre DB2

Código SQL:
Ver original
  1. SELECT
  2.     (CASE WHEN tippag='R'  THEN '1' WHEN persol='0' THEN '2' WHEN cretiinno='P' THEN '3' ELSE '5' END ),
  3.     crdcve, numzon, numsuc,
  4.     SUM( CASE WHEN import >0 THEN import ELSE 0 END ),  
  5.     SUM( CASE WHEN import <0 THEN import ELSE 0 END )
  6.     FROM sotcrd  WHERE crdfchmov = '2014-20-01'
  7.     GROUP BY crdcve , crdfch, numzon , numsuc , tipcre
  8.     ORDER BY crdnumzon,crdnumsuc ;

el detalle esta en linea:
(CASE WHEN tippag='R' THEN '1' WHEN persol='0' THEN '2' WHEN cretiinno='P' THEN '3' ELSE '4' End )
muestra el error
Si es necesaria una cláusula GROUP BY, asegúrese de que todas las columnas o expresiones de la lista SELECT y cláusula ORDER BY estén también en la cláusula GROUP BY

pero como son campos diferentes no lo puedo agrupar, alguna idea como se podria hacer.
  #2 (permalink)  
Antiguo 14/04/2014, 19:36
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: error en group by

si usas una columna dentro de un case y estas agrupando las columnas del case deberan de ir dentro del group by esto porque el case no es una funcion de agregado :P
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 15/04/2014, 09:02
 
Fecha de Ingreso: noviembre-2010
Ubicación: en las nubes
Mensajes: 56
Antigüedad: 14 años
Puntos: 3
Respuesta: error en group by

gracias por responder y si tengo en cuenta lo que me comentas.

el detalle es que necesito la sumatoria de los campos , pero por el problema de agrupación no puedo usar las función de agregado en DB2 , en mysql funciona de maravilla.
  #4 (permalink)  
Antiguo 15/04/2014, 09:25
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: error en group by

Cita:
Iniciado por Hufex Ver Mensaje
gracias por responder y si tengo en cuenta lo que me comentas.

el detalle es que necesito la sumatoria de los campos , pero por el problema de agrupación no puedo usar las función de agregado en DB2 , en mysql funciona de maravilla.
MySQL permite usar el GROUP BY de modos que los demás DBMS no lo hacen.
En DB2 debes respetar las restricciones que el manual de refrerencia te dice, entre las cuales que deben estar todas la scolumnas del SELECT no afectadas por funciones agregadas, y que también deben estar todas esas en el ORDER BY.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: db2, group-by, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:50.