Si je comprends bien, vous devez utiliser un OUTER JOIN
pour obtenir des résultats pour les mois manquants, mais vous avez également besoin d'un CROSS JOIN
pour obtenir le nom de la société correctement -- sinon, il apparaîtra comme NULL
:
SELECT months.month,
SUM(job_details.price_each*job_details.quantity) AS sum_monthly_price,
DATE_FORMAT(job.order_date, '%M') AS order_date,
customer.company_name
FROM months CROSS JOIN customer
LEFT JOIN job on job.company_id = customer.company_id
AND months.month = month(job.order_date)
LEFT job_details on job.job_id = job_details.job_id
WHERE months.month > month(date_sub(NOW(), INTERVAL 4 month))
AND months.month <= month(NOW())
AND customer.company_id = 6
GROUP BY months.month
ORDER BY months.month asc