我正在尝试制作一份显示的销售报告
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
如果无法完成,那么报表生成器中的分组类型就足够了,但我无法看到这样做的方法!
干杯
答案 0 :(得分:2)
如果我理解正确,你的问题在于对记录进行排序。
如果是这种情况,请将其附加到SQL代码中。
ORDER BY salesdate DESC
答案 1 :(得分:0)
对于您在问题中包含的SQL,您需要将聚合函数SUM与GROUP BY语句一起使用。
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
答案 2 :(得分:0)