我正在寫一份報告,需要顯示一週的收據,按地點分組,併爲每週的每一天分列。這將通過SSRS和SQL Server 2008 R2提供。最終的結果應該是這樣的:(但所有7個星期幾)TSQL報告 - 星期幾的數據透視數據?
Location Monday Tuesday
Building3 $100 $75
Building4 $25 $35
Building5 $105 $21
我寫了下面的T-SQL SELECT語句從我的報告表變量(@reporting)得到這個數據。隨後打算按位置對輸出進行分組以獲得上面顯示的佈局。
原始數據在單行中列出接收日期,總計和位置。我想旋轉數據,以便一週中的一天處於最佳狀態。有一個更好的方法來做到這一點,比你看到下面。任何幫助?
SELECT
LocationKey.Location
,Sunday.Cost as Sunday
,Monday.Cost as Monday
FROM
(
SELECT DISTINCT Location
FROM @reporting
WHERE Location NOT IN ('Building01', 'Building02', '')
) AS LocationKey
LEFT JOIN
(SELECT
sunday.Location
,sunday.Cost
FROM @reporting as sunday (nolock)
WHERE DATEPART(weekday,sunday.ReceiptDate)= 1
) AS Sunday
ON Sunday.Location = LocationKey.Location
LEFT JOIN
(SELECT
Monday.Location,
Monday.Cost
FROM @reporting as Monday (nolock)
WHERE DATEPART(weekday,Monday.ReceiptDate)= 2
) AS Monday
ON Monday.Location = LocationKey.Location
好吧,這支點看起來真棒。現在嘗試。 – bluehiro 2012-03-08 19:17:59
好的,我嘗試了兩種方法,他們都很好地工作。但是這個關鍵點很容易實現!非常感謝你,這正是我所期待的。我需要寫一堆這些,所以我會用Pivot寫所有這些。 – bluehiro 2012-03-08 19:52:20
最後的評論,我只是重複使用它在15分鐘內推出類似的報告。嘿,是的! – bluehiro 2012-03-08 20:08:28