生成每日和每月的销售报告
Generating Daily and Monthly sales Report
大家好,
我在 SQLSERVER 2016
中有一个名为 TblOrder_Details
的 table,我想生成每日报告以显示 Qty, Price, Amount
并且还有 [=31= 的摘要] 当天的销售额,这应该显示所选日期范围内的其他日期
下面的代码是我已经尝试过的,但是当我使用 SUM()
聚合函数时我总是遇到问题,因为它只允许用一列分组
SELECT item_Name,qty, price, amount, Sum(amount) as Total_Amount
FROM tblOrderDetails
where Order_Date between @startdate and @enddate GROUP BY Order_Date
我正在将此报告放入 Crystal 报告中,但它不显示结果。我尝试使用 GROUP BY
我选择的所有列,而不是按照我想要的方式呈现。
OUTPUT 的格式应为
OrderDate: 2019/07/29
item_Name qty price amount
rice 2 2,000 4,000
beans 4 4,000 16,000
Summary
Total_qty=2
Total_AMount = 20,000
Order_Date: 2019/07/30
item_Name qty price amount
soap 2 2,500 5,000
slippers 4 3,000 12,000
Summary
Total_qty=2
Total_Amount = 17,000
此外,如果可能的话,我也可以生成月销售额和年销售额,尤其是 crystal
中的报告呈现
请大家帮忙
要获得所需的输出,您可以使用此查询(对于每日报告):
SELECT item_Name ,
qty ,
price ,
amount ,
Total_Amount,
Order_Date
FROM tblOrderDetails T
INNER JOIN ( SELECT SUM(amount) AS Total_Amount ,
Order_Date
FROM tblOrderDetails
WHERE Order_Date BETWEEN @startdate AND @enddate
GROUP BY Order_Date
) D ON D.Order_Date = T.Order_Date
WHERE Order_Date BETWEEN @startdate AND @enddate;
大家好,
我在 SQLSERVER 2016
中有一个名为 TblOrder_Details
的 table,我想生成每日报告以显示 Qty, Price, Amount
并且还有 [=31= 的摘要] 当天的销售额,这应该显示所选日期范围内的其他日期
下面的代码是我已经尝试过的,但是当我使用 SUM()
聚合函数时我总是遇到问题,因为它只允许用一列分组
SELECT item_Name,qty, price, amount, Sum(amount) as Total_Amount
FROM tblOrderDetails
where Order_Date between @startdate and @enddate GROUP BY Order_Date
我正在将此报告放入 Crystal 报告中,但它不显示结果。我尝试使用 GROUP BY
我选择的所有列,而不是按照我想要的方式呈现。
OUTPUT 的格式应为
OrderDate: 2019/07/29
item_Name qty price amount
rice 2 2,000 4,000
beans 4 4,000 16,000
Summary
Total_qty=2
Total_AMount = 20,000
Order_Date: 2019/07/30
item_Name qty price amount
soap 2 2,500 5,000
slippers 4 3,000 12,000
Summary
Total_qty=2
Total_Amount = 17,000
此外,如果可能的话,我也可以生成月销售额和年销售额,尤其是 crystal
中的报告呈现请大家帮忙
要获得所需的输出,您可以使用此查询(对于每日报告):
SELECT item_Name ,
qty ,
price ,
amount ,
Total_Amount,
Order_Date
FROM tblOrderDetails T
INNER JOIN ( SELECT SUM(amount) AS Total_Amount ,
Order_Date
FROM tblOrderDetails
WHERE Order_Date BETWEEN @startdate AND @enddate
GROUP BY Order_Date
) D ON D.Order_Date = T.Order_Date
WHERE Order_Date BETWEEN @startdate AND @enddate;