Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql SSRS报告可向下过滤到特定参数_Sql_Reporting Services_Ssrs 2008 R2 - Fatal编程技术网

Sql SSRS报告可向下过滤到特定参数

Sql SSRS报告可向下过滤到特定参数,sql,reporting-services,ssrs-2008-r2,Sql,Reporting Services,Ssrs 2008 R2,我有一份SSRS地理报告,用于选择项目记录,每个记录可以选择一个以上的地理区域。我有参数要求地区,选区和城市。这些都可以很好地工作,仅当选择一个城市时,所有记录都显示已选择该城市,即使已选择其他城市 我需要一个SQL查询来说明,如果项目选择了@city,那么只显示只选择了@city的项目 例如,在我下面的报告中,我选择了克兰布鲁克的地区和选区,然后在城市参数中,可用的列表是克兰布鲁克和罗基维(很棒!) 在图1中,我选择了Cranbrook和Rockyview。这显示了3个项目,2个项目同时标记了

我有一份SSRS地理报告,用于选择项目记录,每个记录可以选择一个以上的地理区域。我有参数要求地区,选区和城市。这些都可以很好地工作,仅当选择一个城市时,所有记录都显示已选择该城市,即使已选择其他城市

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

例如,在我下面的报告中,我选择了克兰布鲁克的地区和选区,然后在城市参数中,可用的列表是克兰布鲁克和罗基维(很棒!)

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

图1

现在,在图2中,我选择了克兰布鲁克的地区和选区,然后我只选择了克兰布鲁克市。所有3个项目仍在进行中,但我显然只想要那些只标记了Cranbrook的项目

因此,在图2中,我应该只看到清单中出现了项目3426。但它们都显示出

图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来尝试精确匹配参数,但我发现问题是这个城市被标记在其他项目上,无论发生什么都会出现。但是,可能有一些代码会说,如果在参数中选择的城市不显示选择了多个城市的项目。。。我不知道如何做到这一点,我也不知道这一点。我在任何论坛上都没有得到回应。。