我编写了这段 SQL:它返回 11 月份之后销售的商品。不过,我想显示所有已售出的商品,并在该月未售出的商品旁边贴上 0。 希望得到一些指导:
SELECT ItemID, SUM(Quantity)
FROM orderitems
WHERE OrderNumber IN(
SELECT OrderNumber
FROM `order`
WHERE OrderDate > "2015-11-31") GROUP BY ItemID;
最佳答案
试试这个:
SELECT ItemID,
COALESCE(SUM(CASE
WHEN o2.OrderDate > '2015-11-31'
THEN Quantity
END), 0) AS Sum_Of_Quantity
FROM orderitems AS o1
LEFT JOIN (SELECT OrderNumber, OrderDate
FROM `order`
WHERE OrderDate > '2015-11-31') AS o2
ON o1.OrderNumber = o2.OrderNumber
GROUP BY ItemID;
关于mysql - 按数量对订单进行排序,甚至显示数量为 0 的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35573720/