Mysql
 sql >> база данни >  >> RDS >> Mysql

Попълнете липсващите празнини в заявката за период от време с помощта на календарна таблица

Имате нужда от външно присъединяване на календарната таблица. Нещо като

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

Ще получите по-добри отговори, ако публикувате DDL (CREATE TABLE ) изрази и минимален INSERT твърдения, които ни дават достатъчно данни, за да тестваме нашите отговори. (Редактирайте въпроса си и поставете изразите DDL и 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. Заключване на ред в MYSQL таблица по време на транзакция

  2. Как да избягвате кавички в MySQL и Java

  3. Инсталиране на MySQL Python на Mac OS X

  4. Комбинирайте данни от две различни таблици за свързване

  5. Django ManyToMany с множество бази данни