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

Uzupełnij brakujące luki w zapytaniu o zakres dat za pomocą tabeli kalendarza

Potrzebujesz sprzężenia zewnętrznego w tabeli kalendarza. Coś jak

SELECT c.cal_date, coalesce(t1.price, 0) as total
FROM calendar c
LEFT JOIN (SELECT b.purchase_date::date, sum(price) as price 
           FROM order_products a 
           INNER JOIN order_saved b 
                   ON a.order_id = b.id 
                   AND b.purchase_date BETWEEN '2011-09-16 23:59' AND '2011-10-16 23:59' 
                   AND b.status > 2
                   AND a.usr_id = 'XXXX'
            GROUP BY b.purchase_date) t1 on t1.purchase_date = c.cal_date
WHERE cal_date BETWEEN '2011-09-16 23:59' AND '2011-10-16 23:59' 
ORDER BY c.cal_date

Uzyskasz lepsze odpowiedzi, jeśli opublikujesz DDL (CREATE TABLE ) i minimalne INSERT stwierdzenia, które dają nam wystarczającą ilość danych, aby faktycznie przetestować nasze odpowiedzi. (Edytuj swoje pytanie i wklej instrukcje DDL i INSERT).



  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 mogę wyszukiwać za pomocą emoji w MySQL za pomocą utf8mb4?

  2. Symfony2 Doctrine PDO MySQL Połączenie z LOAD DATA LOCAL INFILE

  3. MySQL:współbieżne aktualizacje (poprzez wątki) na prostej tabeli

  4. Błąd zapytania SQL

  5. Brak OQGraph w mojej MariaDB?