不同日期的SSRS数据对比报告

时间:2014-02-25 04:38:29

标签: reporting-services

我正在创建一个报告,显示不同日期范围的销售额。我的意思是第一列将显示用户选择的日期的数据。下一列将显示一周前该日期的数据,下一列将显示上一年的数据。行按商店分组。我所做的是我创建了一个子报表,我使用AddDate函数调用了我需要的日期。我的问题是报告变得非常缓慢。我的配置似乎很好。我想知道是否有人以前见过这种情况,可能有一些见解,或者是否有其他方法可以创建这些类型的报告。谢谢你提前。

2 个答案:

答案 0 :(得分:0)

  1. 确保您的数据集查询显示所有3个日期范围的销售额,例如:

    选择   STOREID,   日期,   数量 从   销售 在哪里Sales.Date(BETWEEN @UserDateFrom和@UserDateTo)或(> = DATEADD(年,-1,GETDATE()))

  2. 因此,这显示的是所有销售,要么是在用户选择的日期之间,要么是去年的日期(也包括上周的销售额)

    然后在您的报告中添加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(年回数))