Ver Mensaje Individual
  #2 (permalink)  
Antiguo 06/07/2011, 07:01
Avatar de gnzsoloyo
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, 5 meses
Puntos: 2658
Respuesta: Consulta a la base de datos

¡Qué ganas de complicarte la vida con subconsultas!
Código MySQL:
Ver original
  1.     SUM(IF(MONTH(fecha_entrada) = 1, cantdocumentos, 0)) Enero,
  2.     SUM(IF(MONTH(fecha_entrada) = 2, cantdocumentos, 0)) Febrero,
  3.     SUM(IF(MONTH(fecha_entrada) = 3, cantdocumentos, 0)) Marzo,
  4.     SUM(IF(MONTH(fecha_entrada) = 4, cantdocumentos, 0)) Abril,
  5.     SUM(IF(MONTH(fecha_entrada) = 5, cantdocumentos, 0)) Mayo,
  6.     SUM(IF(MONTH(fecha_entrada) = 6, cantdocumentos, 0)) Junio,
  7.     SUM(IF(MONTH(fecha_entrada) = 7, cantdocumentos, 0)) Julio,
  8.     SUM(IF(MONTH(fecha_entrada) = 8, cantdocumentos, 0)) Agosto,
  9.     SUM(IF(MONTH(fecha_entrada) = 9, cantdocumentos, 0)) Setiembre,
  10.     SUM(IF(MONTH(fecha_entrada) = 10, cantdocumentos, 0)) Octubre,
  11.     SUM(IF(MONTH(fecha_entrada) = 11, cantdocumentos, 0)) Noviembre,
  12.     SUM(IF(MONTH(fecha_entrada) = 12, cantdocumentos, 0)) Diciembre,
  13.     YEAR(fecha_entrada) `Año`
  14. FROM movimiento
Las subconsultas en el SELECT o en el WHERE deben ser siempre el último recurso, ya que se ejecutan una vez por cada registro que el FROM retorna. Esto implica que si tuvieses 10.000 registros, cada uno se ejecutaría otras tantas veces.
El ejemplo que te pongo hace una barrida total de la tabla y suma.

Tip adicional: El AS es opcional. Se eliminó del estándar hace años y se conserva por compatibilidad, pero ya no es requisito.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)