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

[SOLUCIONADO] Consulta sql oracle error en group by

Estas en el tema de Consulta sql oracle error en group by en el foro de Oracle en Foros del Web. AMIGOSSS, AYUDA PORFAA. NO ME ESTÁ FUNCIONANDO ESTE GROUP BY.. LA VERDAD NO ENTIENDO PORQUE.. SE SUPONE QUE SI PONEMOS UN CAMPO CON EL FORMATO ...
  #1 (permalink)  
Antiguo 16/05/2013, 10:38
 
Fecha de Ingreso: junio-2012
Ubicación: Venezuela
Mensajes: 68
Antigüedad: 11 años, 10 meses
Puntos: 6
Pregunta Consulta sql oracle error en group by

AMIGOSSS, AYUDA PORFAA.

NO ME ESTÁ FUNCIONANDO ESTE GROUP BY.. LA VERDAD NO ENTIENDO PORQUE..

SE SUPONE QUE SI PONEMOS UN CAMPO CON EL FORMATO SUM() ESTE NO VA DECLARADO EN EL GROUP BY, ANQUE ESO NO LO ENTIENDO DEL TODO... EL ERROR QUE ME DA ES ESTE:

"ORA-00979: no es una expresión GROUP BY"

Código SQL:
Ver original
  1. DECLARE
  2.         v_sql VARCHAR2(4096);
  3. BEGIN
  4. v_sql:='SELECT
  5.        VENDEDORES.VENDEDOR ||''-''||VENDEDORES.NOMBRE VENDEDOR,
  6.        PEDIDOS.PEDIDOID PEDIDO,      
  7.        TO_CHAR(PEDIDOS.EMISION,''DD-MM-YYYY'') FECHAPEDIDO,
  8.        PEDIDOS.CLIENTEID CLIENTE,      
  9.        TO_CHAR(FACTURAS.EMISION,''DD-MM-YYYY'') FECHAFACTURA,
  10.        FACTURAS.TIPOMOVCXC MOVIMIENTO,
  11.        SUM(PEDIDOSDETAL.CANTIDAD) CANTIDAD,
  12.        SUM(PEDIDOSDETAL.MONTOTOTAL) TOTAL      
  13. FROM
  14.         SENSORXSA.PEDIDOSENCABEZADO PEDIDOS,
  15.         SENSORXSA.PEDIDOSDETALLE PEDIDOSDETAL,
  16.         SENSORXSA.VENDEDORES VENDEDORES,
  17.         SENSORXSA.FACTURASENCABEZADO FACTURAS
  18. WHERE
  19.         PEDIDOS.EMISION BETWEEN TO_DATE(''' || :P65_FDESDE || ''', ''DD-MM-YYYY'') ' || 'AND     TO_DATE(''' || :P65_FHASTA || ''', ''DD-MM-YYYY'')
  20.  
  21. AND      PEDIDOSDETAL.PEDIDOID = PEDIDOS.PEDIDOID
  22.  
  23. AND      PEDIDOS.PEDIDOID = FACTURAS.ORIGENPEDIDO
  24.  
  25. AND      FACTURAS.TIPOMOVCXC LIKE ''F%''
  26.  
  27. AND      (INSTR(''' || :P65_TIPO || ''', PEDIDOS.TIPOMOVCXC) <> 0 OR ''' || :P65_TIPO || 'X'' = ''X'')
  28. AND      (INSTR(''' || :P65_VENDEDOR || ''', VENDEDORES.VENDEDOR) <> 0 OR ''' || :P65_VENDEDOR || 'X'' = ''X'')
  29.  
  30.  
  31. GROUP BY VENDEDORES.VENDEDOR, VENDEDORES.NOMBRE, PEDIDOS.PEDIDOID, PEDIDOS.EMISION, PEDIDOS.CLIENTEID, FACTURAS.EMISION, FACTURAS.TIPOMOVCXC
  32.  
  33. ORDER BY VENDEDORES.VENDEDOR, PEDIDOS.TIPOMOVCXC, PEDIDOS.EMISION DESC';
  34. --HTP.PRN(v_sql);
  35. RETURN (v_sql);
  36. END;

PD: ES UN CODIGO USADO EN APEX,,,

AYUDAAAAAAAAAAAAAAAAAAAAAAAAAAAA!!
  #2 (permalink)  
Antiguo 16/05/2013, 11:39
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta sql oracle error en group by

La consulta que tienes sólo se debe agrupar por
Código SQL:
Ver original
  1. GROUP BY VENDEDOR, PEDIDO, FECHAPEDIDO, CLIENTE, FECHAFACTURA, MOVIMIENTO
y tu la tienes por:
Código SQL:
Ver original
  1. GROUP BY VENDEDOR, NOMBRE, PEDIDOID, EMISION, CLIENTEID, EMISION, TIPOMOVCXC
Es decir, si no me equivoco, no puedes invocar columnas que no aparezcan en el SELECT, y que no estén afectadas por clausulas agrupadas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 16/05/2013, 11:58
 
Fecha de Ingreso: junio-2012
Ubicación: Venezuela
Mensajes: 68
Antigüedad: 11 años, 10 meses
Puntos: 6
Exclamación Respuesta: Consulta sql oracle error en group by

Gracias por responder amigo.

Se puede hacer el gruop by por los alias del select? Porque no me funciona,, intenté con ese orden y tanto con los alias, como con nombretabla.nombrecampo y nada,, si lo pongo tal cual como tu lo indicas, me dice "Movimiento" es un identificador no válido. y si lo coloco en ese orden pero con el formato nombretabla.nombrecampo me sigue saliendo el mismo error...

No entido,,, alguna sugerencia?
  #4 (permalink)  
Antiguo 16/05/2013, 12:29
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta sql oracle error en group by

Cita:
alguna sugerencia?
Usar las posiciones de las columnas:
Código SQL:
Ver original
  1. GROUP BY 1, 2, 3, 4, 5, 6
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 16/05/2013, 12:29
 
Fecha de Ingreso: junio-2012
Ubicación: Venezuela
Mensajes: 68
Antigüedad: 11 años, 10 meses
Puntos: 6
Respuesta: Consulta sql oracle error en group by

conseguí el error,,, mi group by estaba correcto, tenia malo era el order by...
MALO:

Código SQL:
Ver original
  1. ORDER BY VENDEDORES.VENDEDOR, PEDIDOS.TIPOMOVCXC, PEDIDOS.EMISION DESC';

CORRECTO:
Código SQL:
Ver original
  1. ORDER BY VENDEDORES.VENDEDOR, FACTURAS.TIPOMOVCXC, PEDIDOS.EMISION DESC';

el problema estaba en el segundo parametro de ordenación, no era PEDIDOS.TIPOMOVCXC sino FACTURAS.TIPOMOVCXC
  #6 (permalink)  
Antiguo 16/05/2013, 12:49
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta sql oracle error en group by

Bueno... me alegra que solucionaras.

No me puse a mirar con más detalle porque no estoy en casa, sino en el trabajo :P

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 16/05/2013, 13:47
 
Fecha de Ingreso: junio-2012
Ubicación: Venezuela
Mensajes: 68
Antigüedad: 11 años, 10 meses
Puntos: 6
Respuesta: Consulta sql oracle error en group by

Tranquilo, mas bien gracias por responder... Saludos

Etiquetas: group-by, query
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 18:41.