Sql 分组时组合多行中列内值的SSR
我觉得这在SSRS报告中应该相对容易做到。使用VS2010。我有一个来自基本sql查询的表。只是将列放入VisualStudio中的a表中。我想先按公司对表进行分组,这是通过行组属性完成的。我有一张像这样的桌子Sql 分组时组合多行中列内值的SSR,sql,visual-studio-2010,visual-studio,reporting-services,Sql,Visual Studio 2010,Visual Studio,Reporting Services,我觉得这在SSRS报告中应该相对容易做到。使用VS2010。我有一个来自基本sql查询的表。只是将列放入VisualStudio中的a表中。我想先按公司对表进行分组,这是通过行组属性完成的。我有一张像这样的桌子 Company Contact ContactSub SubCert Year Bank3 Joey Steven.B A 2010 Bank2 Dave James
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 Sub和它们的subcert合并到一行中。但仅使用最近一年的数据。因为某些ContactSub可能已将其SubCert从A B升级到A
Company Contact ContactSub SubCert Year
Bank3 Joey Steven.B A 2010
Bank2 Dave James,Steve,Mark A,A,A 2012
我在行中添加了一个额外的gorup by属性“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
我如何才能澄清我的公式,使其仅表示最新的一年,而不是使用所有年份的值
希望这是有意义的。您的问题是它正在按预期工作-lookupper()函数将返回公司匹配的数据集中的所有记录。您需要在使用lookupper()函数时严格遵守标准,或者添加一些自定义代码来遍历返回的数组并清除重复项 加强查找的一个选项可能是向数据集中添加一个计算字段,将公司名称和年份连接在一起,至少从示例数据来看,这将提供您要查找的更独特的键。数据: 和一个分组在
公司上的表格:
我使用以下表达:
ContactSub
=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)
以及字段!Company.Value
仅匹配LookupSet
表达式中的最高年份
这将提供所需的结果:
是否有任何原因导致上述建议的解决方案不会按日期过滤,并且仍然包含所有值?嗯。。。我似乎仍然得到同样的东西。我所读到的一切也都证实了你的回答。我一定是做错了什么。为什么你的年专栏里也有一个表达式呢?那一列是什么?@dcdeez,为截图道歉,年中的表达式可以作为Max(Fields!Year.Value)
。。。我一直在玩一些东西,并在错误的时间截图-我现在更新。也许根据一些样本数据开始一份新的测试报告,就像我作为控件所做的那样,将有助于解决您的其他问题。