所以我现在已经在报告上工作了一段时间。我还是个菜鸟,所以我不知道如何处理我当前的问题,这是重复的参数值。
这是我的参数的屏幕截图。 Paramater一个参数下拉列表与我的程序有关,而第二个参数下拉列表是活动。正如您所看到的,当选择两个程序时,有""基础知识的副本。
这是我的数据库的片段。 Database两个不同的程序附加了不同的ID。
最后,这是我参数的代码。
计划:
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)
活动:
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),但我只是想知道是否有办法以某种方式加入这两个?下拉列表中有重复项令人讨厌。
谢谢。
答案 0 :(得分:0)
评论太久了。我想你可以查看参数的名称。所以基本上你只需从Activity查询中删除A.Activity_ID
。但是,您还需要在主查询中执行不同的操作(假设您正在过滤传递的A.Activity_ID
值。)
您的活动查询如下:
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])
注意:这可能会影响性能。