Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reporting services SSRS:根据另一个字段中的2个可能值筛选1个字段_Reporting Services_Ssrs 2008_Mdx_Ssrs 2008 R2_Reportbuilder3.0 - Fatal编程技术网

Reporting services SSRS:根据另一个字段中的2个可能值筛选1个字段

Reporting services SSRS:根据另一个字段中的2个可能值筛选1个字段,reporting-services,ssrs-2008,mdx,ssrs-2008-r2,reportbuilder3.0,Reporting Services,Ssrs 2008,Mdx,Ssrs 2008 R2,Reportbuilder3.0,我不知道我是否是个笨蛋,但我已经进行了大量的搜索并尝试了几种选择:无法实现。问题就在这里 我有以下数据查询: 首先,对不起,这是法语。其次,如您所见,字段是“文件编号”、“年份”和“不同患者的数量” 想要的结果:我想筛选2015年和2016年出现的病例编号 如你所见,某些患者连续几年出现。然而,我只想知道2015年和2016年有多少人出席(不是2014年,等等)(所以两年总共2次)。因此,在我2015年和2016年的数据查询中,单独过滤并不能起到作用,因为它无法排除只出现过一次的患者。此外,在

我不知道我是否是个笨蛋,但我已经进行了大量的搜索并尝试了几种选择:无法实现。问题就在这里

我有以下数据查询:

首先,对不起,这是法语。其次,如您所见,字段是“文件编号”、“年份”和“不同患者的数量”

想要的结果:我想筛选2015年和2016年出现的病例编号

如你所见,某些患者连续几年出现。然而,我只想知道2015年和2016年有多少人出席(不是2014年,等等)(所以两年总共2次)。因此,在我2015年和2016年的数据查询中,单独过滤并不能起到作用,因为它无法排除只出现过一次的患者。此外,在2015年和2016年过滤,然后计数(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“and”或通过添加附加过滤器添加2015,mytable就会变为空白


有什么建议吗?谢谢

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

还有另一个调用的函数,它返回查询中的所有匹配项。应该可以围绕此函数创建一个丑陋的表达式,以专门测试字符串2015和2016是否都出现在结果中,如下所示:

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

然后用子字符串搜索“2015”和“2016”(我让你来摆弄这部分)

感谢Daniel确认这个问题不仅仅是在我的两只耳朵之间=”),谢谢你的回答!它与包含答案的表达式字段完美配合,“In”运算符和[20162015]作为值。如果我想要2014年和2017年,你能建议如何制定价值域吗?示例:[2017,|*|,|*|,2014]?您要求提供两个日期(我假设为动态参数),然后搜索中间的任何内容?最后,我意识到我问题的上下文没有意义。我只是想知道(出于好奇)在这种情况下如何使用通配符。自从加入(LookupSet(…)生成一个字符串,我想知道是否有办法以某种方式使用*符号来补偿丢失的字符。但别担心,这纯粹是好奇,对我的情况没有任何附加值。非常感谢!我相信没有通配符语法可以解决这种特殊情况。但是,如果最小/最大年份来自动态参数源之前,我建议查看自定义函数背后的代码。在两个整数之间循环并使用VB函数创建值数组是很简单的。这是一个有点繁重的过程。谢谢!