[英]SSRS Combining values within columns from multiple rows when grouped
我覺得在SSRS報告中這應該相對容易。 使用VS 2010.我有一個來自基本SQL查詢的表。 只需將列放入visual studio中的表中即可。 我想首先按公司對表進行分組,我通過行組屬性進行分組。 我有一張看起來像這樣的桌子。
Company Contact ContactSub SubCert Year
Bank3 Joey Steven.B A 2010
Bank2 Dave James A 2010
Bank2 Dave Steve B 2010
Bank2 Dave Mark B 2010
Bank2 Dave James A 2011
Bank2 Dave Steve A 2011
Bank2 Dave Mark B 2011
Bank2 Dave James A 2012
Bank2 Dave Steve A 2012
Bank2 Dave Mark A 2012
我現在想要將Contact Subs和它們的subcert組合成一行。 但僅使用最近一年。 因為某些ContactSub可能已將其SubCert從B升級為A.
Company Contact ContactSub SubCert Year
Bank3 Joey Steven.B A 2010
Bank2 Dave James,Steve,Mark A,A,A 2012
我在屬性中添加了一個額外的gorup,行的“Year”列,並將此公式用於表中的ContactSub和SubCert列:
=Join(LookupSet(Fields!Company.Value,Fields!Company.Value,Fields!SubCert.Value,"DataSet Name"),",")
但這讓我回答:
Company Contact ContactSub SubCert Year
Bank3 Joey Steven.B A 2010
Bank2 Dave James,Steve,Mark,James A,B,B,A, 2012
Steve,Mark,James, Steve A,B,A,A,
Mark A
我怎么能澄清我的公式,讓它只說最新一年,而不是使用所有年份的價值?
希望這是有道理的。
使用您的數據:
並在Company
分組的表格:
我使用以下表達式:
ContactSub
=Join(LookupSet(Fields!Company.Value & Max(Fields!Year.Value)
, Fields!Company.Value & Fields!Year.Value
, Fields!ContactSub.Value
, "DataSet1"), ",")
SubCert
=Join(LookupSet(Fields!Company.Value & Max(Fields!Year.Value)
, Fields!Company.Value & Fields!Year.Value
, Fields!SubCert.Value
, "DataSet1"), ",")
您可以看到我使用Max(Fields!Year.Value)
以及Fields!Company.Value
僅匹配LookupSet
表達式中的最高年份。
這給出了所需的結果:
您的問題是它按預期工作 - LOOKUPSET()函數返回公司匹配的數據集中的所有記錄。 您需要在使用LOOKUPSET()函數時收緊標准,或者添加一些自定義代碼以遍歷返回的數組並清除重復項。
收緊查詢的一個選項可能是將計算字段添加到數據集中,該數據集將公司名稱和年份連接在一起,至少查看您的示例數據,這將提供您正在尋找的稍微更獨特的密鑰。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.