Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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 使用IIF表达式搜索组中的所有行_Reporting Services_Expression_Iif - Fatal编程技术网

Reporting services 使用IIF表达式搜索组中的所有行

Reporting services 使用IIF表达式搜索组中的所有行,reporting-services,expression,iif,Reporting Services,Expression,Iif,我正在编写一份报告,其中显示了患者姓名(作为具有详细信息的组)以及与其就诊相关的几个字段。我在报告中创建了一列,以显示特定值是否出现在“LocationID”列中。我用的表达是 =IIF(字段!LocationID.Value=“WELL”、“Y”、“N”) 我认为这很有效,它在每个名字旁边显示Y或N,让我知道“WELL”是否在他们的“LocationID”中。我检查了几行,以确保这是可行的,并发现有一个LocationID代码“WHS”,因为我有按名称和LocationID排序的行,如果有WH

我正在编写一份报告,其中显示了患者姓名(作为具有详细信息的组)以及与其就诊相关的几个字段。我在报告中创建了一列,以显示特定值是否出现在“LocationID”列中。我用的表达是

=IIF(字段!LocationID.Value=“WELL”、“Y”、“N”)


我认为这很有效,它在每个名字旁边显示Y或N,让我知道“WELL”是否在他们的“LocationID”中。我检查了几行,以确保这是可行的,并发现有一个LocationID代码“WHS”,因为我有按名称和LocationID排序的行,如果有WHS访问,它会显示在组的顶部,我的表达式只看到这个顶部项目。如何以不同的方式编写此表达式,以便它搜索每个组的整个结果?根据日期范围,患者可能有一次就诊,也可能有十次就诊。我需要检查所有返回的访问。也许有更好的方法。提前感谢。

我同意jimmy8ball的观点,解决大多数类似问题的最简单方法是将一些逻辑推回到SQL层

然而,如果您真的想通过SSRS功能来实现这一点,那么您可以针对lookUnder实现子字符串搜索。假设您的数据集中有一个对每个患者都唯一的患者id(我希望您的组不在名称上),那么

也就是说,“在数据集中搜索与my patientid相关的所有行,将每个位置连接到一个逗号消除的字符串中,在字符串中搜索文本“WELL”,如果找到,则返回“Y”


显然,如果数据集中有“WELLY”这样的位置,这些位置将成为误报,您必须实现一些嵌套逻辑。请尝试在LookUnder返回字段中添加一个值(可能!),以便搜索“WELL!”!“或其他终止符。

我会在SQL中使用case语句根据需要的逻辑为数据集创建标志。-例如:当LocationID='blah'时为case,当LocationID='blah'时为'Y',当LocationID='blah'时为'N'else'blah'结束为[newFlag]这很好,只是它不会返回每个记录的Y或N值。我只需要知道每个患者的就诊是否包含此值。感谢您的回复,我能够按照前面的建议使用案例陈述完成此操作。我感谢您的反馈。
=Iif(InStr(Join(Lookupset(Fields!patientid.Value, Fields!patientid.Value, Fields!LocationsID.Value, "dataset"), ","), "WELL") > 0, "Y", "N")