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

Error ORA-00934: group function is not allowed here

Estas en el tema de Error ORA-00934: group function is not allowed here en el foro de Oracle en Foros del Web. Saludos, tengo esta consulta: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original SELECT   sep_dt_articulos . codart , MAX ( sep_dt_articulos . unidad ) AS unidad , ...
  #1 (permalink)  
Antiguo 21/02/2013, 08:57
 
Fecha de Ingreso: febrero-2013
Mensajes: 1
Antigüedad: 11 años, 10 meses
Puntos: 0
Pregunta Error ORA-00934: group function is not allowed here

Saludos, tengo esta consulta:

Código SQL:
Ver original
  1. SELECT   sep_dt_articulos.codart, MAX (sep_dt_articulos.unidad) AS unidad,
  2.          MAX (sep_dt_articulos.canart) AS canart, siv_dt_despacho.numorddes,
  3.          (SELECT sc_cuenta
  4.             FROM spg_cuentas
  5.            WHERE spg_cuentas.codemp = sep_dt_articulos.codemp
  6.              AND spg_cuentas.codestpro1 = MAX (sep_dt_articulos.codestpro1)
  7.              AND spg_cuentas.codestpro2 = MAX (sep_dt_articulos.codestpro2)
  8.              AND spg_cuentas.codestpro3 = MAX (sep_dt_articulos.codestpro3)
  9.              AND spg_cuentas.codestpro4 = MAX (sep_dt_articulos.codestpro4)
  10.              AND spg_cuentas.codestpro5 = MAX (sep_dt_articulos.codestpro5)
  11.              AND spg_cuentas.estcla = MAX (sep_dt_articulos.estcla)
  12.              AND spg_cuentas.spg_cuenta = MAX (sep_dt_articulos.spg_cuenta)) AS sc_cuentasep,
  13.          (SELECT canpenart
  14.             FROM siv_dt_despacho
  15.            WHERE siv_despacho.codemp = siv_dt_despacho.codemp
  16.              AND siv_despacho.numorddes = siv_dt_despacho.numorddes
  17.              AND sep_dt_articulos.codart = siv_dt_despacho.codart) AS canpenart
  18.     FROM sep_dt_articulos, siv_despacho, siv_dt_despacho
  19.    WHERE sep_dt_articulos.codemp = '0001'
  20.      AND sep_dt_articulos.numsol = '000000000000001'
  21.      AND sep_dt_articulos.codemp = siv_despacho.codemp
  22.      AND sep_dt_articulos.numsol = siv_despacho.numsol
  23.      AND siv_despacho.estrevdes = 1
  24.      AND siv_despacho.codemp = siv_dt_despacho.codemp
  25.      AND siv_despacho.numorddes = siv_dt_despacho.numorddes
  26. GROUP BY siv_dt_despacho.numorddes,
  27.          sep_dt_articulos.codart,
  28.          sep_dt_articulos.codemp,
  29.          sep_dt_articulos.numsol,
  30.          siv_despacho.codemp,
  31.          siv_despacho.numorddes
  32. ORDER BY siv_dt_despacho.numorddes DESC

al ejecutarla en mi base de datos me arroja el error que esta en el titulo y que esta en la linea 5, de hecho con el MAX, he leido y me dice que debo usar un "HAVING", pero no se como aplicarlo a esta consulta.

Muchas gracias de antemano, espero respuestas

Última edición por gnzsoloyo; 21/02/2013 a las 09:18 Razón: Codigo sin etiquetar y poco legible.
  #2 (permalink)  
Antiguo 21/02/2013, 10:30
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 ORA-00934: group function is not allowed here

Que yo sepa, ningún DBMS permite usar funciones agrupadas en el WHERE, tales como SUM(), MAX(), AVG(), MIN(), COUNT(), etc.
Y eso es precisamente lo que estás haciendo.
Por otro lado, una subconsulta en el SELECT hace que esa subconsulta se ejecute una vez con cada registro devuelto por la consulta mayor, lo que necesariamente es poco performántico, a lo menos.
__________________
¿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: allowed, function, group, select
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 22:10.