例如,我正试图制作一份销售报告。
itemid salesdate qty_sold
item1 1/9/14 3
item1 1/9/14 2
item1 1/9/14 5
item2 2/9/14 2
item3 4/9/14 1
我遇到的问题是,例如,周一3的销售可能是由1-3个不同的销售订单组成的,我只能让它显示多行,而不是按我的意愿分组。
我想要制作一份报告,上面显示当天的商品id、购买日期和销售总额,如果有意义的话,不要列出包括该项目在内的所有销售情况?
提前感谢
更多详情:
SELECT st.orderdate, sl.itemid, sl.qty
FROM salestable st
INNER JOIN salesline sl
ON salestable.salesid = salesline.salesid
目前,它显示的结果如下。
OrderDate ItemId Qty
1/1/14 101 1
1/1/14 101 3
1/1/14 102 1
我想分组行,如果可能的话,每个日期只显示1行& itemid。它不起作用,因为它们显然是数据库中的单独行,因为它们有不同的订单号等等。
OrderDate ItemId Qty
1/1/14 101 4
1/1/14 102 1
2/1/14 102 5
2/1/14 101 2
如果不能这样做,那么报表生成器中的分组类型就足够了,但是我看不到这样做的方法!
干杯
发布于 2014-09-24 12:16:56
对于问题中包含的SQL,您需要在GROUP BY语句中使用聚合函数SUM。
SELECT st.orderdate, sl.itemid, SUM(sl.qty)
FROM salestable st
INNER JOIN salesline sl
ON salestable.salesid = salesline.salesid
GROUP BY st.orderdate, sl.itemid
您提到了防止这种情况的其他字段,但不要将它们包含在示例中任何地方。如果你能修改你的问题,包括这些,我们可以提出一个明确的答案。
根据您对日期的评论,这是一个可能的解决方案:
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, st.orderdate)), sl.itemid, SUM(sl.qty)
FROM salestable st
INNER JOIN salesline sl
ON salestable.salesid = salesline.salesid
GROUP BY DATEADD(dd, 0, DATEDIFF(dd, 0, st.orderdate)), sl.itemid
发布于 2014-09-24 08:02:51
如果我正确理解的话,你的问题是整理记录。
如果是这样的话,那么将其附加到SQL代码中。
ORDER BY salesdate DESC
发布于 2014-09-24 12:33:29
https://stackoverflow.com/questions/26011392
复制相似问题