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

Problema con consulta SUM

Estas en el tema de Problema con consulta SUM en el foro de Mysql en Foros del Web. Buenas foro. Al tratar de hacer una consulta y ponerle en la condición que iguale con el clienteID me regresa vacía la consulta. Alguien sabe ...
  #1 (permalink)  
Antiguo 24/04/2013, 14:39
Avatar de jandrogdz  
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 12 años, 5 meses
Puntos: 12
Pregunta Problema con consulta SUM

Buenas foro.

Al tratar de hacer una consulta y ponerle en la condición que iguale con el clienteID me regresa vacía la consulta.
Alguien sabe porque me este sucediendo esto.

Esta es mi consulta:
Código MySQL:
Ver original
  1. SUM(CASE WHEN MONTH( f.fecha ) = 1 AND f.status = 'Pagada' THEN totalFactura ELSE 0 END) Enero,
  2. SUM(CASE WHEN MONTH( f.fecha ) = 2 AND f.status = 'Pagada' THEN totalFactura ELSE 0 END) Febrero,
  3. SUM(CASE WHEN MONTH( f.fecha ) = 3 AND f.status = 'Pagada' THEN totalFactura ELSE 0 END) Marzo,
  4. SUM(CASE WHEN MONTH( f.fecha ) = 4 AND f.status = 'Pagada' THEN totalFactura ELSE 0 END) Abril,
  5. SUM(CASE WHEN MONTH( f.fecha ) = 5 AND f.status = 'Pagada' THEN totalFactura ELSE 0 END) Mayo,
  6. SUM(CASE WHEN MONTH( f.fecha ) = 6 AND f.status = 'Pagada' THEN totalFactura ELSE 0 END) Junio,
  7. SUM(CASE WHEN MONTH( f.fecha ) = 7 AND f.status = 'Pagada' THEN totalFactura ELSE 0 END) Julio,
  8. SUM(CASE WHEN MONTH( f.fecha ) = 8 AND f.status = 'Pagada' THEN totalFactura ELSE 0 END) Agosto,
  9. SUM(CASE WHEN MONTH( f.fecha ) = 9 AND f.status = 'Pagada' THEN totalFactura ELSE 0 END) Septiembre,
  10. SUM(CASE WHEN MONTH( f.fecha ) = 10 AND f.status = 'Pagada' THEN totalFactura ELSE 0 END) Octubre,
  11. SUM(CASE WHEN MONTH( f.fecha ) = 11 AND f.status = 'Pagada' THEN totalFactura ELSE 0 END) Noviembre,
  12. SUM(CASE WHEN MONTH( f.fecha ) = 12 AND f.status = 'Pagada' THEN totalFactura ELSE 0 END) Diciembre,
  13. YEAR( f.fecha) anio
  14. FROM factura AS f JOIN cliente AS c ON f.clienteID = c.clienteID JOIN asociado AS a ON c.asociadoID=a.asociadoID
  15. WHERE f.fecha BETWEEN '2013/01/01' AND '2013/04/24' AND c.clienteID = 275 GROUP BY YEAR( f.fecha )

Espero me puedan ayudar.

De antemano muchas gracias.
__________________
Lo imposible solo cuesta un poco mas
  #2 (permalink)  
Antiguo 24/04/2013, 15:27
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 8 meses
Puntos: 300
Respuesta: Problema con consulta SUM

Tu problema es con los join, que deben ser INNER JOIN. No obstante, los he quitado para que lo pruebes. Creo que verás que los resultados son correctos. Si tienes que unir con la tabla clientes y la de asociados, hazlo mediante INNER JOIN y no mediante JOIN.
Prueba y nos dices.
Código MySQL:
Ver original
  1.     SUM(CASE WHEN MONTH( f.fecha ) = 1 AND f.status = 'Pagada' THEN totalFactura ELSE '0' END) Enero,
  2.     SUM(CASE WHEN MONTH( f.fecha ) = 2 AND f.status = 'Pagada' THEN totalFactura ELSE 0 END) Febrero,
  3.     SUM(CASE WHEN MONTH( f.fecha ) = 3 AND f.status = 'Pagada' THEN totalFactura ELSE 0 END) Marzo,
  4.     SUM(CASE WHEN MONTH( f.fecha ) = 4 AND f.status = 'Pagada' THEN totalFactura ELSE 0 END) Abril,
  5.     SUM(CASE WHEN MONTH( f.fecha ) = 5 AND f.status = 'Pagada' THEN totalFactura ELSE 0 END) Mayo,
  6.     SUM(CASE WHEN MONTH( f.fecha ) = 6 AND f.status = 'Pagada' THEN totalFactura ELSE 0 END) Junio,
  7.     SUM(CASE WHEN MONTH( f.fecha ) = 7 AND f.status = 'Pagada' THEN totalFactura ELSE 0 END) Julio,
  8.     SUM(CASE WHEN MONTH( f.fecha ) = 8 AND f.status = 'Pagada' THEN totalFactura ELSE 0 END) Agosto,
  9.     SUM(CASE WHEN MONTH( f.fecha ) = 9 AND f.status = 'Pagada' THEN totalFactura ELSE 0 END) Septiembre,
  10.     SUM(CASE WHEN MONTH( f.fecha ) = 10 AND f.status = 'Pagada' THEN totalFactura ELSE 0 END) Octubre,
  11.     SUM(CASE WHEN MONTH( f.fecha ) = 11 AND f.status = 'Pagada' THEN totalFactura ELSE 0 END) Noviembre,
  12.     SUM(CASE WHEN MONTH( f.fecha ) = 12 AND f.status = 'Pagada' THEN totalFactura ELSE 0 END) Diciembre,
  13.     YEAR( f.fecha) anio
  14.     FROM factura AS f
  15.     WHERE f.fecha BETWEEN '2013/01/01' AND '2013/04/24' AND f.clienteID = 275 GROUP BY YEAR( f.fecha )
  #3 (permalink)  
Antiguo 24/04/2013, 15:40
Avatar de jandrogdz  
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 12 años, 5 meses
Puntos: 12
Respuesta: Problema con consulta SUM

Encontre el error una disculpa no note que estaba mandando a llamar otra tabla, lo que pasa es que las facturas se guardan en dos tablas distintas entonces tengo que identificar cuando es una y cuando otra pero ya lo solucione pero muchas gracias por contestar.
__________________
Lo imposible solo cuesta un poco mas

Etiquetas: join, select, sum
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 08:35.