如何过滤掉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中的参数值的主要内容,如果未能解决你的问题,请参考以下文章