我有一个实践问题,我要编写一个查询,从数据库中查找2005年最赚钱的15%产品。数据库没有" Saleprice或Purchaseprice"等属性。它有像PUrchaseProductDetails或SalesOrderDetails这样的表,以及Unitprice,orderquantity,ProdID,LIstPrice,ActualCost,StandardPrice等作为属性的其他东西。我很困惑我应该使用哪一个以及如何提出一个公式。我试着写一个查询,但得到了无限运行的结果。
SELECT A.ProdID, B.ProdID, A.Unitprice - (B.Unitprice * orderquantity) Profit
FROM SalesOrderDetails A join PurchaseOrderD B
ON A.ProdID = B.ProdID
WHERE year(DateOrdered) = 2005
Group by A.ProdID
我花了好几个小时研究这类问题,现在我的大脑处于死胡同状态。如果有人可以指导我以正确的方式去做,那真的会帮助我。
答案 0 :(得分:0)
SELECT sale.ProdID, sum(sale.Unitprice - buy.Unitprice) * sale.Qty AS profit
FROM SalesOrderDetails AS sale
JOIN PurchaseOrderD AS buy ON ...
WHERE year(...) = 2005
GROUP BY 1
ORDER BY 2 DESC
LIMIT 15