SSRS报告过滤到特定参数

时间:2015-01-16 22:17:28

标签: sql reporting-services ssrs-2008-r2

我有一份SSRS地理报告,可以选择每条记录可以选择多个地理区域的项目记录。我有参数来请求地区,选区和城市。这些工作正常,只是在选择一个城市时,所有记录显示即使选择了其他城市也会选择该城市。

我需要一个SQL查询来说,如果项目选择了@city,那么只显示仅选择@city的项目......

例如,我在下面的报告中,我选择了区域和Cranbrook的选区,然后在城市参数中,可用的列表是Cranbrook和Rockyview(太棒了!)。

在图1中,我选择了Cranbrook和Rockyview。这显示了3个项目,2个项目同时标记了cranbrook和rockyview,1个项目仅选择了Cranbrook。完美!

图1

Figure 1

现在,在图2中,我选择了Cranbrook的地区和选区,然后我只选择了Cranbrook市。所有3个项目仍然出现,但我明显只想要与Cranbrook标记的项目。

所以在图2中,我应该看到只有项目#3426出现在我的列表中。但他们都显示..

图2

Figure 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_project 包含所有项目相关信息,PK为cbt_projectid

Filteredcbt_geographicarea 包含所有地理区域ID和城市信息

Filteredcbt_cbt_cbt_project_cbt_geographicarea 是项目和地理区域之间的交叉表。这包含标记为每个项目ID的城市。

Filteredcbt_project通过 cbt_projectid 链接到Filteredcbt_cbt_cbt_project_cbt_geographicarea。

Filteredcbt_geographicarea表通过 cbt_geographicareaid

链接到Filteredcbt_cbt_cbt_project_cbt_geographicarea

样品:

Filteredcbt_cbt_project_cbt_geographicarea示例:此示例显示一个项目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_geographicarea示例:这些是地理区域。

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_project示例:

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

我希望这有帮助,我真的需要得到一些答案......我感谢所有的帮助!

0 个答案:

没有答案