簡體   English   中英

如何在Birt中添加總行?

[英]How to add total row in Birt?

我有一個顯示名稱和值並按名稱排序的數據集。

如何在Birt報告中添加總和行? 這樣的事情。

Name  |  Val
    ABC   |   3
    ABC   |   2
    ABC   |   1
    Total |   6
    DEF   |   3
    DEF   |   2
    Total |   5

我試圖通過對“名稱”列進行分組來做到這一點,但是輸出顯示如下。

Name  |  Val
    ABC   |   3
    ABC   |   2
    ABC   |   1
    Total |   6

    Name  |  Val
    DEF   |   3
    DEF   |   2
    Total |   5

您可以嘗試使用ROLLUP進行GROUP BY

WITH cte AS (
    SELECT Name AS OrigName, SUM(Val) AS Val,
        ROW_NUMBER() OVER (PARTITION BY NAME ORDER BY SUM(Val) DESC) rn
    FROM yourTable
    GROUP BY ROLLUP(Name, Val)
)

SELECT
    CASE WHEN rn=1 AND OrigName IS NOT NULL THEN 'Total'
         WHEN OrigName IS NULL THEN 'Grand Total'
         ELSE OrigName END AS NAME,
    Val
FROM cte
ORDER BY
    OrigName, Val;

在此處輸入圖片說明

演示版

盡管Tim的回答在技術上是正確的,但您不必在SQL中創建此類數據,尤其是在格式化期間它不會很漂亮(您會遇到很多if (name == "Total" || name == "Grand Total")

BIRT表具有稱為groups東西。 您可以說您是按名稱分組,每個組都可以有其頁眉和/或頁腳。 您選擇頁腳並在那里設置總計。

您可以在此處了解更多信息: https : //help.eclipse.org/mars/index.jsp?topic=% 2Forg.eclipse.birt.doc%2Fbirt%2Fsg-DisplayTheTotalNumberOfCustomersInTheReport.html(請參見圖7-12)

暫無
暫無

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

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