2014-02-25 28 views
0

我正在創建一個報告,顯示不同日期範圍的銷售情況。我的意思是第一列將顯示用戶所選日期的數據。下一列將顯示前一週的該日期的數據,下一列將顯示前一年的數據。行按商店分組。我所做的是我創建了一個子報表,我使用AddDate函數調用我需要的日期。我的問題是報告變得非常緩慢。我的配置似乎很好。我想知道是否有人曾經見過這種類型的情況,並可能有一些洞察力,或者可能有其他方式來創建這些類型的報告。先謝謝了。不同日期的SSRS數據對比報告

回答

0
  1. 確保您的數據集查詢顯示了所有3日期範圍的銷售,例如:

    選擇 STOREID, 日期, 數量 FROM 銷售 WHERE Sales.Date(BETWEEN @UserDateFrom和@UserDateTo)OR(> = 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個字段到表矩陣爲您3列

+0

嗨。感謝您的回覆。通過更改要過濾的數據集,以便它包含所有3個日期範圍的銷售額,您的意思是什麼?此外,表達式不允許我在它們中具有求和功能。它抱怨總場地。 – user3294748

+0

嗨,對不起,我的解釋不是最好的,我不是這方面的專家!我試過編輯我的答案,使其更清晰,希望這有助於! – user3352163

+0

感謝您的幫助。我最終做的是創建了更多的數據集,並將日期公式作爲參數傳遞給每個數據集,然後使用查找函數獲取這些值。 – user3294748

0

我建議一個解決方案,將有助於創建報告。

按照以下方式創建查詢。

選擇傳奇,總和(CDQ),總和(WBQ),總和(YBQ) 從 ( SELECT商店ID,數量CDQ,0 WBQ,0 YBQ FROM SALES WHERE日期= @日期

UNION ALL

SELECT商店ID,0 CDQ,數量WBQ,0 YBQ FROM SALES WHERE日期=使用DateAdd( 'd', - 7,@日期)

UNION ALL

SELE CT商店ID,0 CDQ,0 WBQ,數量YBQ FROM SALES WHERE日期=使用DateAdd( 'Y', - 1,@日期) )一個 組由傳奇

上述CDQ(當前日期數量), (WBQ(WEEK BACK Quantity)),(YBQ(年回數量))