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

Problema con SUM() y GROUP()

Estas en el tema de Problema con SUM() y GROUP() en el foro de Mysql en Foros del Web. Hola amigos, tengo un problema con mi consulta a la bd, dicha consulta la realizo con codigo PHP y me despliega el error MySQL: @import ...
  #1 (permalink)  
Antiguo 28/10/2009, 10:38
Avatar de bacdavi  
Fecha de Ingreso: junio-2006
Ubicación: http://localhost/
Mensajes: 351
Antigüedad: 17 años, 10 meses
Puntos: 7
Pregunta Problema con SUM() y GROUP()

Hola amigos, tengo un problema con mi consulta a la bd, dicha consulta la realizo con codigo PHP y me despliega el error MySQL:

Código Error MySQL:
Ver original
  1. Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause

Código SQL:
Ver original
  1. SELECT SUBSTRING(FECHA,6,2) MES,SUM(facturacion) FROM presupuesto WHERE
  2. SUBSTRING(Fecha,1,4) = '2009' AND producto IN ('16','17')
  3. GROUP BY SUBSTRING(fecha,6,2)
  4. ORDER BY SUBSTRING(fecha,6,2)

Alguno de ustedes tiene idea de que estoy haciendo mal??
  #2 (permalink)  
Antiguo 28/10/2009, 10:47
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Problema con SUM() y GROUP()

si la ejecutas directamente en mysql presenta el mismo error?
si es así, postea la estructura de la tabla presupuesto con algunos inserts de ejemplo.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 28/10/2009, 10:50
Avatar de bacdavi  
Fecha de Ingreso: junio-2006
Ubicación: http://localhost/
Mensajes: 351
Antigüedad: 17 años, 10 meses
Puntos: 7
Respuesta: Problema con SUM() y GROUP()

Cita:
Iniciado por huesos52 Ver Mensaje
si la ejecutas directamente en mysql presenta el mismo error?
si es así, postea la estructura de la tabla presupuesto con algunos inserts de ejemplo.

saludos
Gracias amigo, desde la consola mysql no me presenta ese error, es al ponerlo en el servidor cuando me da ese error, de hecho, cuando lo ejecuto en consola me despliega el resultado que deseo.
  #4 (permalink)  
Antiguo 28/10/2009, 11:01
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Problema con SUM() y GROUP()

Entonces tu problema está en la forma como llamas la consulta desde php.
O tienes incompatibilidad de versiones con el mysql de tu servidor.

Tienes forma de probar mediante phpmyadmin la consulta directamente en tu servidor?
Si todo marcha bien, definitivamente el problema está en php y no en mysql.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 28/10/2009, 11:43
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: Problema con SUM() y GROUP()

1) ¿Qué versión de MySQL tienes en local y qué versión está en el servidor remoto?

2) Estás usando SUBSTRING() para obtener el mes. ¿Por qué no usas directamente MONTH() y YEAR()?
Código sql:
Ver original
  1. SELECT
  2.    MONTH(FECHA) MES,
  3.    SUM(facturacion)
  4. FROM presupuesto
  5. WHERE
  6.    YEAR(Fecha) = 2009 AND producto IN (16,17)
  7. GROUP BY MONTH(fecha)
  8. ORDER BY MONTH(fecha);

Otro tip: Si estás comparando enteros, no pongas los valores entre apóstrofes (') ya que no sólo es innecesario, además estás obligando a MySQL a realizar una conversión implícita que no tiene razón de existir.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
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:06.