Sql-Server-2014

SSRS 2014 報告 - 從數據集中查找單行

  • December 2, 2019

我有一張我試圖在 SSRS-2014 中報告的表格。

表格的精簡版:-

TABLE_NAME  FEE_NAME    FEE_VALUE
PDE         1st year    100.00
PDE         2nd year    120.00
PDE         3rd year    130.00
PDE         4th year    140.00
PDE         5th Year    150.00
PGB         1st year    500.00
PGB         2nd year    520.00
PGB         3rd year    530.00
PGB         4th year    440.00
PGB         5th Year    850.00
PUS         1st year    100.00
PUS         2nd year    120.00
PUS         3rd year    130.00
PUS         4th year    140.00
PUS         5th Year    150.00
PCA         1st year    100.00
PCA         2nd year    120.00
PCA         3rd year    130.00
PCA         4th year    140.00
PCA         5th Year    150.00
PJP         8th year    600.00
PJP         10th year   820.00
PJP         11th year   40.00
PJP         12h year    140.00
PJP         14th Year   750.00

我怎樣才能顯示數據,以便它是: -

Table Name  1st year    2nd year    3rd year    4th year    5th year    6th year    7th year    8th year    9th year    10th year   11th year   12 year 13th year   14th year
PDE         100.00      120.00      130.00      140.00      150.00
PGB         500.00      520.00      530.00      440.00      850.00
PJP                                                                                             600.00                    820.00        40.00   140.00              750.00

等等。

年份列的範圍為 1 到 20,並且每年都不會有一個值。

我試過使用:-

=Lookup(ReportItems!Textbox3.Value, Fields!FEE_NAME.Value, Fields!FEE_DIS1.Value, "Fees")

使用 SSRS 表的標題行中的年份從數據集中查找 FEE_NAME,但是我為數據集中的每個條目得到一行,但每一行顯示相同的(正確)值。

我嘗試在 SQL 中使用 CASE :-

CASE WHEN FEES.FEE_NAME = '3rd year' THEN FEE_VALUE END AS [3rd year],

同樣,我得到了我想要的值,然後為其餘的 TABLE_NAME 行清空行。

我還查看了 Pivot (SQL) 和 Matrix (SSRS) 表,但我只想返回相應的費用值並將其顯示在相關的年份列中,而到目前為止,Pivot 和 SSRS 需要匯總。

希望這是有道理的。

乾杯。

您可以在 SQL 中執行此操作,也可以在 SSRS 中使用矩陣表。通常,我更喜歡在 SQL 中執行此操作,但這對其他人來說通常不是最方便的。您是正確的,因為您需要將聚合函式與任何類型的樞軸功能一起使用。在您的情況下,您應該使用sum()聚合。

雖然這聽起來有點違反直覺,但它可以正常工作,因為每個fee_name. 您最終得到的是一個值列表,其中列表中唯一的內容是所需的值。一個列表,如 ,[10]總和為10

引用自:https://dba.stackexchange.com/questions/254570