如何过滤掉s-s-rS中的参数值

Posted

技术标签:

【中文标题】如何过滤掉s-s-rS中的参数值【英文标题】:How to filter out parameters value in s-s-rS 【发布时间】:2016-08-24 13:00:08 【问题描述】:

我目前有一份 s-s-rS 报告,它提供了基于两个站点(开普敦和达拉斯)的电话数据。

目前我有一个叫Site的参数和一个叫Data_Label的参数。通过选择开普敦和相关的 Data_Label 以及达拉斯的相同,它绝对可以按照我的意愿工作。这会显示我需要的所有数据。

我遇到的问题是 Data_Label 的列表很长,其中一半附加到开普敦站点,另一半附加到达拉斯站点。我希望发生的情况是,当我选择开普敦作为我的站点时,会出现一半的 Data_Label,然后当我选择达拉斯时,其他的就会显示。

这是我当前在数据集中的查询:

在哪里([LB ODS].Telephony_LifestyleBenefits_VIEW.Site IN (@Site))和([LB ODS].DataLookup.Data_Label IN (@DataLabel))

所以每个 Data_Label 都将链接到主数据库中的相关站点,但我只需要在我的参数中添加一个过滤器,这样它就不会显示长列表

谢谢 丹

【问题讨论】:

你能加入 Data_Label 和 Site 数据集吗?如果我理解您的问题,这可以通过级联两个参数来解决。 我目前只有 1 个数据集在使用,我该怎么做呢? 如何填充 Data_Label 和 Site 参数? 我刚刚手动输入它们作为可用值 我认为您可以根据站点选择有条件地填充 Data_Label 参数。但是您必须提供一种方法来判断每个 Data_Label 值是否与开普敦或达拉斯有关。编辑您的问题以包含 Data_Label 值列表和相应的站点值。 【参考方案1】:

您可以将Data_Label参数从站点参数值级联。

如果您通过数据集填充 Data_Label 参数,您可以使用 Site 参数过滤可用值,类似这样

select Data_Label
from Table1
where Site IN (@Site) 

当您运行报表时,填充 Data_Label 参数的数据集将运行上述查询并返回与为 Site 参数选择的值相关的 Data_Label 值。

此外,如果您手动填充参数,您可以对 CTE 中的值进行硬编码,结果如下:

WITH DLValues AS (

select 'Data_Label1' [Data_Label], 'Dallas' [RelatedSite]
union all
select 'Data_Label2' [Data_Label], 'Dallas' [RelatedSite]
union all
select 'Data_Label3' [Data_Label], 'Cape Town' [RelatedSite]
union all
select 'Data_Label4' [Data_Label], 'Cape Town' [RelatedSite]

) 

select Data_Label
from DLValues
where RelatedSite IN (@Site)

如果这对你有帮助,请告诉我。

【讨论】:

以上是关于如何过滤掉s-s-rS中的参数值的主要内容,如果未能解决你的问题,请参考以下文章

使用 s-s-rS 表达式查看用户从多值参数中选择了哪些选项?

如何覆盖s-s-rS中的参数默认值?

s-s-rS 中的可选多值参数

s-s-rS - 如果参数留空,默认显示所有值

更新 s-s-rS 参数中的下拉列表值

在 s-s-rS 中,如何使用多值参数创建动态“位置”条件