我需要创建一份报告,计算某一天的付费和未付订单数以及付费和未付订单中的商品数量。这是我提出的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非常重要。