Sql SSRS报告可向下过滤到特定参数
我有一份SSRS地理报告,用于选择项目记录,每个记录可以选择一个以上的地理区域。我有参数要求地区,选区和城市。这些都可以很好地工作,仅当选择一个城市时,所有记录都显示已选择该城市,即使已选择其他城市 我需要一个SQL查询来说明,如果项目选择了@city,那么只显示只选择了@city的项目 例如,在我下面的报告中,我选择了克兰布鲁克的地区和选区,然后在城市参数中,可用的列表是克兰布鲁克和罗基维(很棒!) 在图1中,我选择了Cranbrook和Rockyview。这显示了3个项目,2个项目同时标记了cranbrook和rockyview,1个项目仅选择了cranbrook。太好了 图1 现在,在图2中,我选择了克兰布鲁克的地区和选区,然后我只选择了克兰布鲁克市。所有3个项目仍在进行中,但我显然只想要那些只标记了Cranbrook的项目 因此,在图2中,我应该只看到清单中出现了项目3426。但它们都显示出 图2 我的数据集查询:Sql SSRS报告可向下过滤到特定参数,sql,reporting-services,ssrs-2008-r2,Sql,Reporting Services,Ssrs 2008 R2,我有一份SSRS地理报告,用于选择项目记录,每个记录可以选择一个以上的地理区域。我有参数要求地区,选区和城市。这些都可以很好地工作,仅当选择一个城市时,所有记录都显示已选择该城市,即使已选择其他城市 我需要一个SQL查询来说明,如果项目选择了@city,那么只显示只选择了@city的项目 例如,在我下面的报告中,我选择了克兰布鲁克的地区和选区,然后在城市参数中,可用的列表是克兰布鲁克和罗基维(很棒!) 在图1中,我选择了Cranbrook和Rockyview。这显示了3个项目,2个项目同时标记了
SELECT Filteredcbt_geographicarea.cbt_electoralareaidname
, Filteredcbt_geographicarea.cbt_name AS City
, Filteredcbt_project.cbt_imsnumber
, Filteredcbt_geographicarea.cbt_electoralidname
, Filteredcbt_projectfiscalyear.cbt_committedamount
, Filteredcbt_projectfiscalyear.cbt_commitmentavailable
, Filteredcbt_projectfiscalyear.cbt_commitmentdisbursed
, Filteredcbt_project.cbt_organizationlegalnameidname
, Filteredcbt_project.statuscodename
, Filteredcbt_projectfiscalyear.cbt_projectnameid
, Filteredcbt_projectfiscalyear.cbt_programfiscalyearidname
, Filteredcbt_projectfiscalyear.cbt_fiscalyearidname
, Filteredcbt_regionaldistrict.cbt_name AS [Regional District]
FROM Filteredcbt_regionaldistrict
INNER JOIN Filteredcbt_electoralarea ON Filteredcbt_regionaldistrict.cbt_regionaldistrictid = Filteredcbt_electoralarea.cbt_regionaldistrictid
INNER JOIN Filteredcbt_category
INNER JOIN Filteredcbt_program ON Filteredcbt_category.cbt_categoryid = Filteredcbt_program.cbt_categoryid
INNER JOIN Filteredcbt_project ON Filteredcbt_program.cbt_programid = Filteredcbt_project.cbt_programnameid
INNER JOIN Filteredcbt_projectfiscalyear ON Filteredcbt_project.cbt_projectid = Filteredcbt_projectfiscalyear.cbt_projectnameid
INNER JOIN Filteredcbt_cbt_project_cbt_geographicarea ON Filteredcbt_project.cbt_projectid = Filteredcbt_cbt_project_cbt_geographicarea.cbt_projectid
INNER JOIN Filteredcbt_geographicarea ON Filteredcbt_cbt_project_cbt_geographicarea.cbt_geographicareaid = Filteredcbt_geographicarea.cbt_geographicareaid
ON Filteredcbt_electoralarea.cbt_electoralareaid = Filteredcbt_geographicarea.cbt_electoralareaid
WHERE (Filteredcbt_geographicarea.cbt_electoralareaidname IN (@Area)) AND (Filteredcbt_project.statuscodename IN (@Status)) AND
(Filteredcbt_projectfiscalyear.cbt_fiscalyearidname IN (@FiscalYear)) AND (Filteredcbt_regionaldistrict.cbt_name IN (@Regional)) AND
(Filteredcbt_geographicarea.cbt_name IN (@City))
ORDER BY Filteredcbt_projectfiscalyear.cbt_fiscalyearidname
ORDER BY Filteredcbt_projectfiscalyear.cbt_fiscalyearidname;
因此,表结构是这样连接的:
Filteredcbt_项目保存所有项目相关信息,PK为cbt_项目
Filteredcbt\u GeographicaleA保存所有地理区域id和城市信息
Filteredcbt\u cbt\u cbt\u project\u cbt\u GeographicaleA是项目和地理区域之间的交叉表。这将保存标记到每个项目ID的城市
Filteredcbt_项目通过cbt_项目链接到Filteredcbt_cbt_cbt_项目
Filteredcbt_Geographical Caread表通过cbt_Geographical Caread链接到Filteredcbt_cbt_cbt_project_cbt_Geographical Caread
样本:
Filteredcbt\u cbt\u项目\u cbt\u地理位置示例:此示例显示一个项目ID可以标记多个地理区域
cbt_cbt_project_cbt_geographicareaid cbt_geographicareaid cbt_projectid
A6D7292F-EA05-E411-BCEA-00155D0470B9 4EB4F611-4BD1 2C2FC521-EA05-E411
998F9FE5-2806-E411-BCEA-00155D0470B9 38B4F611-4BD1 54FD66DD-2806-E411
9A8F9FE5-2806-E411-BCEA-00155D0470B9 7EB4F611-4BD1 54FD66DD-2806-E411
(same project ID's on the last two)
Filteredcbt_GeographicaleCare示例:这些是地理区域
cbt_electoralareaid cbt_electoralareaidname cbt_geographicareaid cbt_name(city)
16B4F611-4BD1-E311-8AB9 Town of Creston 2EB4F611-4BD1-E311 Alice Siding
13B4F611-4BD1-E311-8AB9 RDCK Area I 2FB4F611-4BD1-E311 Thrums
0EB4F611-4BD1-E311-8AB9 RDCK Area D 30B4F611-4BD1-E311 Ainsworth
Filteredcbt_项目示例:
cbt_imsnumber cbt_programnameid cbt_projectid
3397 F38AEF17-4BD1-E311-8AB9-00155D067193 48F7E223-4BD1-E311-8AB9-00155D067193
3398 F58AEF17-4BD1-E311-8AB9-00155D067193 4AF7E223-4BD1-E311-8AB9-00155D067193
3426 D18AEF17-4BD1-E311-8AB9-00155D067193 44F7E223-4BD1-E311-8AB9-00155D067193
我希望这有帮助,我真的需要得到一些答案。。。我感谢所有的帮助 您能给我们看一下获取数据的查询吗。如果您也能提供一些示例数据,这将有助于我们测试修复程序。没有什么是敏感的,只是我们可以看看问题在哪里。把你的表结构和样本数据放在这里。谢谢!我已经在上面放置了查询、表结构和示例数据。。我希望这有帮助,我真的需要一些答案,并感谢所有的时间来帮助!有人有什么想法吗?我想知道我是否可以使用lookupper来尝试精确匹配参数,但我发现问题是这个城市被标记在其他项目上,无论发生什么都会出现。但是,可能有一些代码会说,如果在参数中选择的城市不显示选择了多个城市的项目。。。我不知道如何做到这一点,我也不知道这一点。我在任何论坛上都没有得到回应。。