sql >> Databasteknik >  >> RDS >> Mysql

Visa resten av raden med null eller 0 på plats för kolumner som inte hittades

Om jag förstår det rätt måste du använda en OUTER JOIN för att få resultat för de saknade månaderna, men du behöver också en CROSS JOIN för att få företagets namn korrekt -- om inte, kommer det att visas som 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


  1. Hur skapar jag en ny webbsida från en användarinlämnad databaspost?

  2. Felsökning visar inte aktuell lagrad procedurversion

  3. Slumpmässigt viktat urval av en händelse

  4. Symfony-utgång av data i datumgrupperade tabeller