Sql查询以按日销售顺序显示所有产品
问题描述:
我在零售POS应用程序中有两个简单表格。称为产品和product_sales。 product_sales记录所有以不同订单进行的销售。我想显示一个页面,其中列出我所有的产品通过其销售的数量排序...Sql查询以按日销售顺序显示所有产品
现在我想写一个SQL查询,可售我的所有产品。 ..我认为一个左连接...可以显示为该产品所做的所有销售的总和...并将它们排序为RANK即畅销商品。
我与SQL初学者...不知道该怎么写。这是我尝试过但没有工作。
SELECT DISTINCT p1.name,
p1.id
FROM products p1
LEFT JOIN
product_sales p2
ON p1.id = p2.product_id
ORDER BY SUM(p2.quantity)
答
SELECT t1.name,
COALESCE(t2.totalQuantity, 0)
FROM products t1
LEFT JOIN
(
SELECT product_id, SUM(quantity) AS totalQuantity
FROM product_sales
GROUP BY product_id
) t2
ON t1.id = t2.product_id
ORDER BY t2.totalQuantity DESC -- show highest selling product first
+0
优秀!像魅力一样工作。我以前从未遇到过COALESCE和如此复杂的查询。将需要更多细节探索SQL。 –
做了“买卖”指的是在'product_sales'表中的一个记录,或者是销售数量列? –
您能否附上数据样本? – dhS
我尝试了一个答案,你想为每个产品总结数量。你应该包括样本数据,并在你的代表水平,我期望这一点。 –