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 那部分)
如果我是个傻瓜,我不知道,但我已经进行了大量搜索并尝试了几种选择:无法实现。问题来了。
我有以下数据查询:
首先,很抱歉这是法语。其次,如您所见,这些字段是 "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 那部分)