Qué tal?
Temgo la siguiente consulta que me da lo pago, impago y la suma de ambos en un determinado período (mes actual y 9 meses hacia atrás por default). Hasta ahí, perfecto. El tema es cuando aparecen períodos que no tiienen resultados (agrupo por mes). Para esos necesito que me vuelva en 0, pero no que no lo tenga en cuenta, porque después ordeno esto en una tabla html con fechas y se me corren las columnas. Paso la consulta como está:
 
SELECT
                      YEAR(PI.date_invoice) AS year,
                      MONTH(PI.date_invoice) AS month,   
                      @unpaid := SUM(CASE  
                                   WHEN PI.status = '1' THEN PI.amount_dolar 
                                   ELSE 0 
                                   END) AS unpaid,
                      @paid := SUM(CASE  
                                   WHEN PI.status = '2' THEN PI.amount_dolar 
                                   ELSE 0 
                                   END) AS paid,
                      @total := SUM(CASE
                                   WHEN PI.status != '3' THEN PI.amount_dolar   
                                   ELSE 0 
                                   END) AS total   
                      FROM crm_provider_invoice PI
                      LEFT JOIN crm_provider P ON(PI.id_provider = P.id_provider)   
                      WHERE DATE_FORMAT(PI.date_invoice, '%Y-%m-%d') BETWEEN DATE_SUB(LAST_DAY(SYSDATE()), INTERVAL 9 MONTH) AND DATE_SUB(LAST_DAY(SYSDATE()), INTERVAL 0 MONTH)
                      GROUP BY MONTH(PI.date_invoice)
                      ORDER BY year DESC, month DESC
 
Lo que necesitaría son los registros mes a mes, sin importar si hay o no. Y en los casos en los que no haya que me permita generar el mes con valores 0 para lo pago, impago y el total.
El que pueda ayudarme con esto le estaré agradecido. 
  
 

