我觉得在SSRS报告中这样做应该相对容易。使用VS2010。我有一个来自基本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及其子证书合并为一行。但仅使用最近的年份。因为某些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,并将该公式用于表中的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
上分组的表:
我使用以下表达式:
联系人Sub
=Join(LookupSet(Fields!Company.Value & Max(Fields!Year.Value)
, Fields!Company.Value & Fields!Year.Value
, Fields!ContactSub.Value
, "DataSet1"), ",")
子证书
=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
表达式中最高的年份。这给出了所需的结果: