[英]SSRS Multi-Value Parameter
我有一個基於地理位置的SSRS報告。 數據集返回項目記錄,包括區域區域,選舉區域以及城市級別。 我創建了從區域到選舉再到城市的級聯參數。
但是,每個項目都可以在選定的選舉區域內擁有多個城市。 用戶要求參數過濾器僅記錄已選擇該城市的記錄。 因此,如果選擇的參數是:
如果他們只選擇“克蘭布魯克”,他們希望只選擇克蘭布魯克,只有項目的記錄,而不是那些克蘭布魯克和Rockyview選定的項目。
現在,我的報告結果將顯示選擇了Cranbrook以及項目中選擇的其他城市的所有記錄。 例如,我將看到所有選擇了Cranbrook的項目以及所有選擇了Cranbrook和Rockyview的項目。
以下是我的報告的更多詳細信息。
@Regional
Regional-區域數據@Regional
可用值(選擇所有可用的) @Area
選舉區數據@Area
可用值(選擇@Regional中的所有可用值) @City
城市數據@City
可用值(選擇@area中的所有值) @Status
所有可用狀態 @Fiscal Year
-所有可用的會計年度。 我的詳細資料數據集查詢(以下)中有一個過濾器,該過濾器僅過濾@city
參數中的那些城市。
我的數據集查詢:
SELECT Filteredcbt_geographicarea.cbt_electoralareaidname
, Filteredcbt_geographicarea.cbt_name AS City
, Filteredcbt_project.cbt_projectnumber
, 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)) AND (NOT EXISTS
(SELECT cbt_electoralareaid, cbt_electoralareaidname, cbt_electoralid, cbt_electoralidname, cbt_geographicareaid, cbt_name
FROM Filteredcbt_geographicarea AS ga1
WHERE (cbt_name NOT IN (@City)) AND (cbt_geographicareaid = Filteredcbt_cbt_project_cbt_geographicarea.cbt_geographicareaid)))
ORDER BY Filteredcbt_projectfiscalyear.cbt_fiscalyearidname
ORDER BY Filteredcbt_projectfiscalyear.cbt_fiscalyearidname;
Filteredcbt_cbt_project_cbt_geographicarea示例:
cbt_cbt_project_cbt_geographicareaid cbt_geographicareaid cbt_projectid A6D7292F-EA05-E411-BCEA-00155D0470B9 4EB4F611-4BD1-E311-8AB9-00155D067193 2C2FC521-EA05-E411 998F9FE5-2806-E411-BCEA-00155D0470B9 38B4F611-4BD1-E311-8AB9-00155D067193 54FD66DD-2806-E411- 9A8F9FE5-2806-E411-BCEA-00155D0470B9 7EB4F611-4BD1-E311-8AB9-00155D067193 54FD66DD-2806-E411- 956F0BD1-2A06-E411-BCEA-00155D0470B9 5BB4F611-4BD1-E311-8AB9-00155D067193 82B478C7-2A06-E411- 54D3ED7F-2C06-E411-BCEA-00155D0470B9 54B4F611-4BD1-E311-8AB9-00155D067193 ADC83877-2C06-E411- 55D3ED7F-2C06-E411-BCEA-00155D0470B9 C8B4F611-4BD1-E311-8AB9-00155D067193 ADC83877-2C06-E411- EBDC3544-2E06-E411-BCEA-00155D0470B9 5BB4F611-4BD1-E311-8AB9-00155D067193 40C1163C-2E06-E411- 70A9B479-AE06-E411-BCEA-00155D0470B9 54B4F611-4BD1-E311-8AB9-00155D067193 F24BE26E-AE06-E411- 616C21B3-B506-E411-BCEA-00155D0470B9 65B4F611-4BD1-E311-8AB9-00155D067193 C4389EAA-B506-E411-BCEA- 626C21B3-B506-E411-BCEA-00155D0470B9 99B4F611-4BD1-E311-8AB9-00155D067193 C4389EAA-B506-E411-BCEA- 636C21B3-B506-E411-BCEA-00155D0470B9 ABB4F611-4BD1-E311-8AB9-00155D067193 C4389EAA-B506-E411-BCEA- 646C21B3-B506-E411-BCEA-00155D0470B9 F7B4F611-4BD1-E311-8AB9-00155D067193 C4389EAA-B506-E411-BCEA-
Filteredcbt_geographicarea示例:
cbt_electoralareaid cbt_electoralareaidname cbt_geographicareaid cbt_name 16B4F611-4BD1-E311-8AB9-00155D067193 Town of Creston 2EB4F611-4BD1-E311-8AB9-00155D067193 Alice Siding 13B4F611-4BD1-E311-8AB9-00155D067193 RDCK Area I 2FB4F611-4BD1-E311-8AB9-00155D067193 Thrums 0EB4F611-4BD1-E311-8AB9-00155D067193 RDCK Area D 30B4F611-4BD1-E311-8AB9-00155D067193 Ainsworth Hot Springs 0EB4F611-4BD1-E311-8AB9-00155D067193 RDCK Area D 31B4F611-4BD1-E311-8AB9-00155D067193 Argenta
謝謝,讓我知道您是否需要其他信息。
嘗試將其添加到您的WHERE子句中:
AND NOT EXISTS(
SELECT * FROM Filteredcbt_geographicarea ga1
WHERE ga1.cbt_name NOT IN (@City)
AND ga1.cbt_geographicareaid=Filteredcbt_cbt_project_cbt_geographicarea.cbt_geographicareaid
)
如果可行,我將在回答中添加解釋。 :)
如果您向您的聯接中添加另一個表
INNER JOIN (SELECT Filteredcbt_geographicarea.cbt_geographicareaid, string_agg(Filteredcbt_geographicarea.cbt_name, ', ') AS City_List
FROM Filteredcbt_geographicarea
GROUP BY 1) City_List_Lookup ON City_List_Lookup.cbt_geographicareaid = Filteredcbt_cbt_project_cbt_geographicarea.cbt_geographicareaid
使用此表,您可以將連接的城市與輸入的參數進行比較。
因此,您的where子句變為:
City_List_Lookup.City_List = (@City)
通過將各個城市串聯在一起,您可以查找整個列表僅包含一個城市的情況。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.