sql >> Databáze >  >> RDS >> Mysql

Zobrazte zbytek řádku s nulou nebo 0 pro sloupce, které nebyly nalezeny

Pokud tomu dobře rozumím, musíte použít OUTER JOIN abyste získali výsledky za chybějící měsíce, ale potřebujete také CROSS JOIN správně získat název společnosti -- pokud ne, zobrazí se 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. SQLException:Nelze načíst stavový server transakce pouze pro čtení

  2. databáze návrhů týkající se atributu času

  3. Odstraňte objekty uvnitř polí NESTED JSONB pomocí PostgreSQL

  4. Jarní přechod zabezpečení na autentizaci Ldap a databázová oprávnění