Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wyświetl resztę wiersza z wartością null lub 0 w przypadku nieznalezionych kolumn

Jeśli dobrze rozumiem, musisz użyć OUTER JOIN aby uzyskać wyniki za brakujące miesiące, ale potrzebujesz także CROSS JOIN aby uzyskać prawidłową nazwę firmy - jeśli nie, pojawi się jako 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zsynchronizować bazę danych deweloperskich i produkcyjnych

  2. Wdrażanie twittera i facebooka jak hashtagi

  3. MYSQL wybierz urodziny na podstawie przedziału wiekowego

  4. MariaDB:Czy mogę odzyskać zduplikowane nazwy kolumn bez używania „AS”

  5. Jak utworzyć bazę danych MySQL za pomocą interfejsu wiersza poleceń (CLI)