使用 IIF 表达式搜索组中的所有行
Searching ALL ROWS in a Group using IIF Expression
我正在处理一份显示患者姓名(作为具有向下钻取的组)和与他们的就诊相关的几个字段的报告。我在报告中创建了一个列来显示特定值是否出现在 'LocationID' 列中。我使用的表达式是
=IIF(字段!LocationID.Value="WELL","Y","N")
我认为这很好用,它在每个名字旁边显示 Y 或 N,让我知道 'WELL' 是否在他们的 'LocationID' 中。我检查了几个以确保这会起作用,并发现有一个 'WHS' 的 LocationID 代码,并且由于我有按 Name 和 LocationID 排序的行,如果有 WHS 访问,它会显示在顶部组和我的表情只看到这个最上面的项目。如何以不同的方式编写此表达式,以便它搜索每个组的整个结果?根据日期范围,患者可能有一次就诊,也可能有十次。我需要检查返回的所有访问。也许有更好的方法。提前致谢。
我同意 jimmy8ball 的观点,解决大多数此类问题的最简单方法是将一些逻辑推回 SQL 层。
但是,如果您真的想通过 SSRS 功能执行此操作,则可以针对查找集实施子字符串搜索。假设您的数据集中有一个对每个患者都是唯一的患者 ID(我希望您的组不在名字上)然后...
=Iif(InStr(Join(Lookupset(Fields!patientid.Value, Fields!patientid.Value, Fields!LocationsID.Value, "dataset"), ","), "WELL") > 0, "Y", "N")
也就是说,"Search through the dataset for all rows related to my patientid, join every location into a comma deliminated string, search the string for the text "WELL" 和 return "Y" 如果找到了。
显然,如果您的数据集中有位置,例如 "WELLY",这些位置将变成误报,您将不得不实施更多的嵌套逻辑。尝试向查找集 return 字段附加一个值(也许是!),以便您可以搜索 "WELL!" 或其他一些终止符。
我正在处理一份显示患者姓名(作为具有向下钻取的组)和与他们的就诊相关的几个字段的报告。我在报告中创建了一个列来显示特定值是否出现在 'LocationID' 列中。我使用的表达式是
=IIF(字段!LocationID.Value="WELL","Y","N")
我认为这很好用,它在每个名字旁边显示 Y 或 N,让我知道 'WELL' 是否在他们的 'LocationID' 中。我检查了几个以确保这会起作用,并发现有一个 'WHS' 的 LocationID 代码,并且由于我有按 Name 和 LocationID 排序的行,如果有 WHS 访问,它会显示在顶部组和我的表情只看到这个最上面的项目。如何以不同的方式编写此表达式,以便它搜索每个组的整个结果?根据日期范围,患者可能有一次就诊,也可能有十次。我需要检查返回的所有访问。也许有更好的方法。提前致谢。
我同意 jimmy8ball 的观点,解决大多数此类问题的最简单方法是将一些逻辑推回 SQL 层。
但是,如果您真的想通过 SSRS 功能执行此操作,则可以针对查找集实施子字符串搜索。假设您的数据集中有一个对每个患者都是唯一的患者 ID(我希望您的组不在名字上)然后...
=Iif(InStr(Join(Lookupset(Fields!patientid.Value, Fields!patientid.Value, Fields!LocationsID.Value, "dataset"), ","), "WELL") > 0, "Y", "N")
也就是说,"Search through the dataset for all rows related to my patientid, join every location into a comma deliminated string, search the string for the text "WELL" 和 return "Y" 如果找到了。
显然,如果您的数据集中有位置,例如 "WELLY",这些位置将变成误报,您将不得不实施更多的嵌套逻辑。尝试向查找集 return 字段附加一个值(也许是!),以便您可以搜索 "WELL!" 或其他一些终止符。