簡體   English   中英

創建帶有計算行的 SSRS 報告

[英]Create a SSRS Report with calculated row

我創建了一個報告,其中顯示了以下信息: 在此處輸入圖片說明

但我需要在每次“Turno”更改時添加一個帶有計算字段的新行,並在表末尾添加另一行,如下所示:

在此處輸入圖片說明

這是我第一次創建這樣的報告,所以任何幫助將不勝感激,謝謝。

編輯。 建議的答案: 向 SSRS 報告 tablix 添加小計對我不起作用。 這個答案將所有“NOCHE”分組,然后是所有“MAÑANA”,然后是所有“TARDE”,但我需要在下一行中的“Turno”更改時分組,而不是所有具有相同Turno的記錄。 提前感謝並為我的英語感到抱歉。

可能有一種方法可以直接在 SSRS 中執行此操作,但如果可能,我會嘗試在您的數據集查詢中執行此操作。

以下查詢重新創建您的數據集,然后添加一個額外的列GroupByID ,然后您可以在報告中使用它來輕松地對數據進行分組。

查詢的第一部分只是生成一些數據,您只需要主要的 SELECT 部分,您可以將 @t 交換為您的表名。

DECLARE @t TABLE(Relevo char(1), ID int IDENTITY(1,1), Turno varchar(10), TT float)

INSERT INTO @t(Relevo, Turno, TT) VALUES
('A', 'NOCHE', 0.085),('A', 'NOCHE', 0.1),('A', 'NOCHE', 0.099),('A', 'NOCHE', 0.055),('A', 'NOCHE', 0.07),
('A', 'NOCHE', 0.076),('A', 'NOCHE', 0.102),('A', 'MANANA', 0.06),('A', 'MANANA', 0.065),('A', 'MANANA', 0.064),
('A', 'MANANA', 0.126),('A', 'MANANA', 0.136),('A', 'MANANA', 0.107),('A', 'NOCHE', 0.059),('A', 'NOCHE', 0.121),
('A', 'NOCHE', 0.063),('A', 'NOCHE', 0.055),('A', 'NOCHE', 0.056),('A', 'NOCHE', 0.085)

-- Change @t below for the name of your table
SELECT z.Relevo, z.ID, z.Turno, z.TT, MIN(z.GroupByID) AS GroupByID
    FROM(
        SELECT
            a.*, b.id  AS GroupByID
        FROM @t a 
            LEFT JOIN 
            (SELECT * FROM (
                SELECT 
                    * 
                    ,LastEntry = IIF(LEAD(Turno,1,'') OVER(ORDER BY ID) = Turno, 0,1)
                FROM @t
                ) x WHERE x.LastEntry = 1
                ) b
            ON a.Relevo = b.Relevo and a.Turno = b.Turno and a.id <=b.ID
    ) z
    GROUP BY z.Relevo, z.ID, z.Turno, z.TT
    ORDER BY ID

這給出了以下輸出

在此處輸入圖片說明

現在您在 SSRS 中要做的就是添加一個父行組,按GroupByID分組並添加您需要的表達式(例如=AVG(Fields!TT.Value) )。

報告設計將如下所示...

在此處輸入圖片說明

注意:為清楚起見,我顯示了第一列,但您可以刪除它。

最終輸出看起來像這樣。

在此處輸入圖片說明

暫無
暫無

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

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