在一两个查询中计算付费和未付订单和项目

时间:2011-11-09 19:50:29

标签: mysql union

我需要创建一份报告,计算某一天的付费和未付订单数以及付费和未付订单中的商品数量。这是我提出的SQL:

(SELECT COUNT(DISTINCT o1.id) AS n_orders, COUNT(i1.id) AS n_items, date, paid 
   FROM order o1 
   JOIN items i1 ON o1.id=i1.order_id 
   WHERE paid=1 
   GROUP BY date) 
UNION 
(SELECT COUNT(DISTINCT o2.id) AS n_orders, COUNT(i2.id) AS n_items, date, paid 
    FROM order o2 
    JOIN items i2 ON o2.id=i2.order_id 
    WHERE paid=0 
    GROUP BY date)
ORDER BY date

这会为每个日期创建一个包含0-2行的表,具体取决于该日期是否有付款/未付款订单。这接近我想要的结果,即每个日期的一个行中的付费/未付订单和商品的数量。我怎样才能做到这一点? 对于没有付费/未付订单的日期,金额为0非常重要。

0 个答案:

没有答案