[英]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.