¡Qué ganas de complicarte la vida con subconsultas!
Código MySQL:
Ver original SUM(IF(MONTH(fecha_entrada
) = 1, cantdocumentos
, 0)) Enero
, SUM(IF(MONTH(fecha_entrada
) = 2, cantdocumentos
, 0)) Febrero
, SUM(IF(MONTH(fecha_entrada
) = 3, cantdocumentos
, 0)) Marzo
, SUM(IF(MONTH(fecha_entrada
) = 4, cantdocumentos
, 0)) Abril
, SUM(IF(MONTH(fecha_entrada
) = 5, cantdocumentos
, 0)) Mayo
, SUM(IF(MONTH(fecha_entrada
) = 6, cantdocumentos
, 0)) Junio
, SUM(IF(MONTH(fecha_entrada
) = 7, cantdocumentos
, 0)) Julio
, SUM(IF(MONTH(fecha_entrada
) = 8, cantdocumentos
, 0)) Agosto
, SUM(IF(MONTH(fecha_entrada
) = 9, cantdocumentos
, 0)) Setiembre
, SUM(IF(MONTH(fecha_entrada
) = 10, cantdocumentos
, 0)) Octubre
, SUM(IF(MONTH(fecha_entrada
) = 11, cantdocumentos
, 0)) Noviembre
, SUM(IF(MONTH(fecha_entrada
) = 12, cantdocumentos
, 0)) Diciembre
, YEAR(fecha_entrada
) `Año`
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.