dcd*_*eez 3 sql visual-studio-2010 visual-studio reporting-services
我觉得在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
Run Code Online (Sandbox Code Playgroud)
我现在想要将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
Run Code Online (Sandbox Code Playgroud)
我在属性中添加了一个额外的gorup,行的"Year"列,并将此公式用于表中的ContactSub和SubCert列:
=Join(LookupSet(Fields!Company.Value,Fields!Company.Value,Fields!SubCert.Value,"DataSet Name"),",")
Run Code Online (Sandbox Code Playgroud)
但这让我回答:
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
Run Code Online (Sandbox Code Playgroud)
我怎么能澄清我的公式,让它只说最新一年,而不是使用所有年份的价值?
希望这是有道理的.
使用您的数据:

并且表格分组Company:

我使用以下表达式:
ContactSub
=Join(LookupSet(Fields!Company.Value & Max(Fields!Year.Value)
, Fields!Company.Value & Fields!Year.Value
, Fields!ContactSub.Value
, "DataSet1"), ",")
Run Code Online (Sandbox Code Playgroud)
SubCert
=Join(LookupSet(Fields!Company.Value & Max(Fields!Year.Value)
, Fields!Company.Value & Fields!Year.Value
, Fields!SubCert.Value
, "DataSet1"), ",")
Run Code Online (Sandbox Code Playgroud)
您可以看到我正在使用Max(Fields!Year.Value)以及Fields!Company.Value仅匹配LookupSet表达式中的最高年份.
这给出了所需的结果:

| 归档时间: |
|
| 查看次数: |
30639 次 |
| 最近记录: |