我有每個用戶的統計信息的表格,讓我們說如何,每年的本月合計爲Tablix的列在SSRS 2008 R2
TABLE Stats
user varchar(50)
callsdate datetime
howmany INT
,我需要表現出的Tablix有總計其中列標題應該是2012年7月,2012年8月,2012年9月等,具體取決於數據中的含義。
我有每個用戶的統計信息的表格,讓我們說如何,每年的本月合計爲Tablix的列在SSRS 2008 R2
TABLE Stats
user varchar(50)
callsdate datetime
howmany INT
,我需要表現出的Tablix有總計其中列標題應該是2012年7月,2012年8月,2012年9月等,具體取決於數據中的含義。
最終,您需要在報告級別設置一個月份和年份級聯的組。
你可以在查詢級別的東西像這樣做:
select
[user]
, monthYear = left(datename(mm, callsdate), 3) + '-' + cast(datepart(yy, callsdate) as char(4))
, howmany
from [Stats]
甚至都凝聚在查詢級別,如果你可以:
select
[user]
, monthYear = left(datename(mm, callsdate), 3) + '-' + cast(datepart(yy, callsdate) as char(4))
, howmany = sum(howmany)
from [Stats]
group by [user]
, monthYear = left(datename(mm, callsdate), 3) + '-' + cast(datepart(yy, callsdate) as char(4))
有了這個數據集在報告級別您可以根據您的Tablix的要求輕鬆將其分組在monthYear
列中。
您會遇到正確訂購的問題;我將另一個計算列添加到數據集:
select
[user]
, monthYear = left(datename(mm, callsdate), 3) + '-' + cast(datepart(yy, callsdate) as char(4))
, monthYearOrder = cast(datepart(yy, callsdate) as char(4)) + right('0' + cast(datepart(mm, callsdate) as char(2)), 2)
, howmany = sum(howmany)
from [Stats]
group by [user]
, monthYear = left(datename(mm, callsdate), 3) + '-' + cast(datepart(yy, callsdate) as char(4))
, monthYearOrder = cast(datepart(yy, callsdate) as char(4)) + right('0' + cast(datepart(mm, callsdate) as char(2)), 2)
這將允許你進行分組和順序由monthYearOrder
,但仍使用該文本從monthYear
。
如果無法在查詢級別進行聚合,則可以對報表中的表達式進行類似處理,例如,作爲數據集中計算列:
monthYear:=CDate(Fields!callsdate.Value).ToString("MMM-yyyy")
monthYearOrder:=CDate(Fields!callsdate.Value).ToString("yyyyMM")
你可以進入該領域的屬性,然後編號,並與你想要的格式設置爲日期?我錯過了什麼嗎? – Neil