Jika saya mengerti dengan benar, Anda perlu menggunakan OUTER JOIN
untuk mendapatkan hasil untuk bulan-bulan yang hilang, tetapi Anda juga memerlukan CROSS JOIN
untuk mendapatkan nama Perusahaan dengan benar -- jika tidak, akan muncul sebagai 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