簡體   English   中英

即使數據庫中沒有關聯的記錄,也會在ssrs報表中顯示傳遞的參數

[英]display passed parameter in an ssrs report even if there are no associated records in the database

我需要創建一個傳遞參數列表並返回所有參數的SSRS報告,即使沒有與該參數關聯的記錄也是如此。 我在下面發布了我要完成的工作。

通過的參數:12388501、1238853、1238858、123885900、12388573

並希望最終報告看起來像下面的示例: 在此處輸入圖片說明

在此示例中傳遞的參數是帳號。 即使數據庫中未包含該帳號,如何獲取顯示為記錄的帳號?

我正在使用SQL Server 2012數據庫,SSMS進行查詢開發,並將最終在SSRS中創建報告。 我希望我對這個問題的措辭有意義。 如果我的查詢中缺少任何內容,請告訴我,我會提供。 提前致謝!

第1步:將字符串拆分為表格的各行。 我的理解是,Erland Sommarskog被視為處理SQL Server中的列表的權威: 使用表值參數的SQL Server 2008中的數組和列表 (於2012年修訂。他在以下頁面上專門討論了更廣泛的主題/早期的SQL Server版本: SQL Server中的數組和列表 。)還有其他方法,可以通過用戶定義的函數等將字符串拆分為表值參數,對於與您在此處的小列表類似的方法,可能會表現良好。

第2步:使用您從字符串參數拆分中填充的表值參數,形成與下面的查詢類似的查詢。 第一個SELECT中的INNER JOIN將只為您提供與內聯表中的AccountNumber匹配的那些記錄,而第二個SELECT中的LEFT OUTER JOIN與WHERE子句將為您提供myTable中不存在的AccountNumber值。 您可以將其他值替換為我存根的NULL值,只要它們與myTable中相應字段的數據類型匹配即可。

SELECT mt.AccountNumber,mt.LastName,mt.FirstName,mt.ContactNumber,mt.Address,mt.City,mt.State,mt.Zip 
FROM myTable mt JOIN @t t ON mt.AccountNumber = t.AccountNumber
UNION
SELECT t.AccountNumber,NULL LastName,NULL FirstName,NULL ContactNumber,NULL Address,NULL City,NULL State, NULL Zip 
FROM @t t
LEFT OUTER JOIN myTable mt ON t.AccountNumber = mt.AccountNumber 
WHERE mt.AccountNumber IS NULL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM