处理 SSRS 参数中的重复项

Dealing with duplicates in SSRS parameters

所以我已经为一份报告工作了一段时间。我还是菜鸟,所以我不确定如何处理我当前的问题,这是重复的参数值。

这是我的参数的屏幕截图。 Paramater 一个参数下拉列表与我的程序有关,而第二个是活动。如您所见,当两个程序都被选中时,"Basics for" 出现重复。

这是我的数据库的一个片段。 Database 两个不同的程序附加了不同的 ID。

最后,这是我的参数代码。

程序:[=3​​2=]

SELECT distinct
A.ProgramID, A.ProgramName

FROM dwh.Bks_DWH_Programs A
INNER JOIN dwh.Bks_DWH_OrgUnits d on A.ProgramOrgUnitID = d.OrgUnitID

WHERE d.OrgUnitParentID in (@OP) and 
d.OrgUnitID in (@OU)

Activity:

SELECT distinct A.Activity_ID, A.Activity_Name

FROM dwh.Bks_DWH_Activities A
INNER JOIN dwh.Bks_DWH_Programs aa on a.Activity_EntityID = aa.ProgramID
INNER JOIN dwh.Bks_DWH_OrgUnits d on aa.ProgramOrgUnitID = d.OrgUnitID

WHERE d.OrgUnitParentID in (@OP) and 
d.OrgUnitID in (@OU) and
aa.ProgramID in (@TP)

ORDER by A.Activity_ID

我明白为什么会有重复(因为程序有不同的 ID),但我只是想知道是否有办法以某种方式将两者结合起来?下拉列表中有重复项很烦人。

谢谢。

评论太长。我想你可以看看参数的名称。所以基本上你只需从你的 Activity 查询中删除 A.Activity_ID 。但是你还需要在你的主查询中做一些不同的事情(假设你正在过滤正在传递的 A.Activity_ID 值)。

您的 Activity 查询如下所示:

SELECT DISTINCT A.Activity_Name
FROM...

你的主要查询应该是这样的:

WHERE d.OrgUnitParentID IN (@OP) 
AND d.OrgUnitID IN (@OU) 
AND aa.ProgramID IN (@TP)
AND a.Activity_Name = @[YourActivityParameter]

或...

AND a.Activity_Name IN (@[YourActivityParameter])

注意:这可能会影响性能。