我正在创建一个报告,显示不同日期范围的销售额。我的意思是第一列将显示用户选择的日期的数据。下一列将显示一周前该日期的数据,下一列将显示上一年的数据。行按商店分组。我所做的是我创建了一个子报表,我使用AddDate函数调用了我需要的日期。我的问题是报告变得非常缓慢。我的配置似乎很好。我想知道是否有人以前见过这种情况,可能有一些见解,或者是否有其他方法可以创建这些类型的报告。谢谢你提前。
答案 0 :(得分:0)
确保您的数据集查询显示所有3个日期范围的销售额,例如:
选择 STOREID, 日期, 数量 从 销售 在哪里Sales.Date(BETWEEN @UserDateFrom和@UserDateTo)或(> = DATEADD(年,-1,GETDATE()))
因此,这显示的是所有销售,要么是在用户选择的日期之间,要么是去年的日期(也包括上周的销售额)
然后在您的报告中添加3个计算字段:
SalesUserDates: =IIF(Fields!Date.Value >= @UserDateFrom AND <= @UserDateTo, Fields!Quantity.Value, 0)
SalesLast7: =IIF(Fields!Date.Value >= DateAdd(d,-7,Today()),Fields!Quantity.Value, 0)
SalesLast365: =IIF(Fields!Date.Value >= DateAdd(d,-365,Today()),Fields!Quantity.Value, 0))
所以这些基本上说如果销售在日期范围内,那么包括它的数量。
然后将这3个字段拖到Tablix上作为3列
答案 1 :(得分:0)
我建议使用一种解决方案来创建报告。
按以下方式创建查询。
选择传说,总和(CDQ),总和(WBQ),总和(YBQ) 从 ( SELECT Store ID,Quantity CDQ,0 WBQ,0 YBQ FROM Sales WHERE日期= @日期
联合所有
SELECT Store ID,0 CDQ,Quantity WBQ,0 YBQ FROM Sales WHERE日期= DateAdd(&#39; d&#39;, - 7,@ Date)
联合所有
SELECT Store ID,0 CDQ,0 WBQ,Quantity YBQ FROM Sales WHERE日期= DateAdd(&#39; y&#39;, - 1,@ Date) )一个 按传说分组
上述CDQ(当前日期数量),(WBQ(周回数)),(YBQ(年回数))