【问题标题】:Generating Daily and Monthly sales Report生成每日和每月销售报告
【发布时间】:2019-07-29 15:38:03
【问题描述】:

大家好,

我在SQLSERVER 2016 有一个名为TblOrder_Details 的表,我想生成每日报告以显示Qty, Price, Amount,并且还有当天 Total_amount 销售额的摘要,这应该显示范围内的其他日期选择天数

下面的代码是我尝试过的,但是当我使用 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 

我正在将此报告放入水晶报告中,但它不显示结果。我已经尝试使用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

如果可能的话,如果我也可以生成月销售额和年销售额,尤其是在水晶中呈现的报告

请大家帮忙

【问题讨论】:

  • 对于Amount,计算qty * price。你为什么使用SUM(Amount)?
  • sum(Amount) 为Total_Amount,这是计算当日售出商品的总Sum
  • 对于数量*价格,我已经计算并保存了金额
  • 您应该能够在 Crystal Report 中进行所有计算。为您的 Total Amounts 和 Total Quantity 创建运行值
  • 谢谢@FembotDBA。我现在才这样做

标签: sql-server vb.net crystal-reports


【解决方案1】:

要获得所需的输出,您可以使用此查询(用于每日报告):

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;  

【讨论】:

  • 谢谢你。但是,这样做是为了获取购买的商品总数和价格,而我想要的是获取每个订单详细信息的每日细分,现在获取 total_sales
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多