Napisałem poniższe zapytanie indywidualnie, ale chcę w jednym zapytaniu, jak to zrobić, czy ktoś może pomóc ..? Wybierz IFNULL (suma (net_amount), 0) jako aktualny_date z zamówień, gdzie is_canceled = false ...

0
Chinnu 15 marzec 2021, 16:23

1 odpowiedź

Najlepsza odpowiedź

Możesz użyć warunkowej agregacji, aby połączyć wszystkie osobne wybierz instrukcję w jednolitym, takim jak

SELECT SUM(CASE WHEN business_date = CURRENT_DATE() 
                THEN 
                    net_amount 
                ELSE 
                    0 
                 END ) AS current_date,
       SUM(CASE WHEN YEARWEEK(business_date) = YEARWEEK(CURRENT_DATE()) 
                THEN 
                    net_amount 
                ELSE 
                    0 
                 END ) AS current_week,
       SUM(CASE WHEN MONTH(business_date) = MONTH(CURRENT_DATE()) 
                THEN 
                    net_amount 
                ELSE 
                    0 
                 END ) AS current_month,
       SUM(CASE WHEN YEAR(business_date) = YEAR(CURRENT_DATE()) 
                THEN 
                    net_amount 
                ELSE 
                    0 
                 END ) AS current_year       
  FROM orders 
 WHERE is_cancelled = false
1
Barbaros Özhan 15 marzec 2021, 13:38