【发布时间】:2014-11-25 10:44:54
【问题描述】:
给定一个日期,表格会显示在该日期售出的商品。
该表对商品的类别进行了分组,并显示了每个类别的总销售额。最后,报告显示当天的总销售额。像这样的:
ID Category Price Units Total Value
----------------------------------------------------
2244 class 10.50 10 105.00
2555 class 5.00 5 25.00
3455 class 20.00 1 20.00
Total 16 150.00
1255 pop 20.00 5 100.00
5666 pop 10.00 10 100.00
Total 15 200,00
1244 rock 2.50 20 50.00
8844 rock 5.00 50 250.00
Total 70 300.00
----------------------------------------------
Total Daily Sales 101 650.00
数据库管理系统:SQL Server 2012
粗体:主键
商品(upc、标题*、类型、类别、公司、年份、价格、库存)
PurchaseItem(receiptId、upc、数量)
订单(receiptId、日期、cid、card#、expiryDate、expectedDate、deliveredDate)
Rough work of what I have so far..
SELECT I.upc, I.category, I.price, P.quantity, P.quantity*I.price AS totalValue, SUM(totalValue), SUM(P.quantity) AS totalUnits, O.date
FROM Item I, Order O
JOIN (SELECT P.quantity
FROM PurchaseItem P, Item I
WHERE I.upc = P.upc)
ON I.upc = P.upc
WHERE O.date = ({$date}) AND O.receiptId = P.receiptId
GROUP BY I.upc, I.category, I.price, P.quantity, totalValue, O.date
好吧,这是不对的,我有点卡住了。需要帮助!
我想要它,所以它会产生一个类别的项目的总价值,然后最后,它将所有类别的项目的总价值相加。
示例表
项目(2568,披头士,摇滚,音乐公司,1998,50.50,5000)
购买项目 (5300, 2568, 2)
Order (5300, 10/09/2014, ...不重要..) cid 是 customerId,card# 是信用卡号。
【问题讨论】:
-
能否提供每张表的样本数据?
-
Item(2568, Beatles, rock, Music Inc, 1998, 50.50, 5000) PurchaseItem (5300, 2568, 2) Order (5300, 10/09/2014, ...不重要.. ) cid 是 customerId,card# 是信用卡号。
-
最好包含您在问题中使用的数据。此外,在包含示例数据时编辑问题。
-
至少包含更多数据。如果我们只有一行,我们如何测试总和?
-
我觉得你需要
group by with rolluptechnet.microsoft.com/en-us/library/ms189305(v=sql.90).aspx
标签: sql sql-server tsql