SSRS:根据另一个字段中的 2 个可能值过滤 1 个字段

SSRS: Filter 1 field based on 2 possible values in another field

如果我是个傻瓜,我不知道,但我已经进行了大量搜索并尝试了几种选择:无法实现。问题来了。

我有以下数据查询:

首先,很抱歉这是法语。其次,如您所见,这些字段是 "File number"、"Year" 和 "Number of distinct patients"。

想要的结果:我想筛选同时出现在 2015 年和 2016 年的案件编号。

如您所见,某些患者连续几年出现。但是,我想知道有多少只出现在 2015 年和 2016 年(不是 2014 年等)(所以 2 年总共有 2 次访问)。因此,仅在我的 2015 年和 2016 年数据查询中进行过滤并不能完成这项工作,因为它无法排除只出现过一次的患者。此外,过滤 2015 年和 2016 年,然后过滤 Count(Fields!File_number.Value)=2 将不起作用,因为它无法排除 2014 年可能来过这里的患者。

我尝试了几个布尔表达式,但只要我在过滤器中包含 2 年,它就会清空我的 tablix。 (可以理解,因为我告诉它 Fields!Year.Value 必须同时等于 2015 和 2016)。

所以我尝试通过告诉它并执行以下操作来绕过它: 表达式:

=IIF(Lookup(Fields!FileNumber.Value, Fields!FileNumber.Value, Fields!Year.Value, "Dataset")=2015 AND Lookup(Fields!FileNumber.Value, Fields!FileNumber.Value, Fields!Year.Value, "Dataset")=2016, True, False)

它仅适用于 1 年:只要我通过 "AND" 或通过添加附加过滤器添加 2015,mytable 就会变为空白。

有什么建议吗?谢谢!

是的,这不是一件容易解决的事情,您不是傻瓜 :) 您对查询中的双布尔表达式是正确的,并且两个组合查找也不起作用。在查找的情况下,LOOKUP return 是数据集中的第一个匹配项,因此每次,这两个查找都会 return 第一个值。

还有另一个名为 LookupSet 的函数,它会 return 从查询中进行所有匹配。应该可以围绕此函数创建一个丑陋的表达式来专门测试字符串 2015 和 2016 是否都出现在结果中,如:

=Join(LookupSet(Fields!FileNumber.Value, Fields!FileNumber.Value, Fields!Year.Value, "Dataset"),",")  

然后搜索“2015”和“2016”的子字符串(我会让你 fiddle 那部分)