Mssql汇总行使用ROLLUP

Mssql summary row using ROLLUP

我正在尝试使用 ROLLUP 分组生成摘要行,
这是我的查询

 SELECT nic as NIC,branch_id,SUM(as_share),SUM(as_deposit) as as_deposit,SUM(as_credits) as as_credits,SUM(as_fixed) as as_fixed,SUM(as_ira) as as_ira,SUM(as_saviya) as as_saviya
    FROM As_Member_Account_Details
    GROUP BY nic,branch_id
    WITH ROLLUP

但它给了我这个输出,

112233  1       30.00   0.00    0.00    50.00   0.00    0.00
112233  2       20.00   0.00    0.00    0.00    0.00    0.00
112233  3       0.00    0.00    0.00    0.00    0.00    0.00
112233  NULL    50.00   0.00    0.00    50.00   0.00    0.00
NULL    NULL    50.00   0.00    0.00    50.00   0.00    0.00

最后一行之前的一行不需要。因为应该只有 3 个数据行 + 一个汇总行。我怎样才能消除那一行

WITH CTE_YourQuery AS
(
    SELECT nic as NIC,branch_id,SUM(as_share),SUM(as_deposit) as as_deposit,SUM(as_credits) as as_credits,SUM(as_fixed) as as_fixed,SUM(as_ira) as as_ira,SUM(as_saviya) as as_saviya
    FROM As_Member_Account_Details
    GROUP BY nic,branch_id
    WITH ROLLUP
)
SELECT * 
FROM CTE_YourQuery
WHERE NOT (nic IS NOT NULL AND branch_id IS NULL)

Grouping sets 允许在立方体数据时进行更精细的控制。

SELECT nic as NIC
     , branch_id,SUM(as_share)
     , SUM(as_deposit) as as_deposit
     , SUM(as_credits) as as_credits
     , SUM(as_fixed) as as_fixed
     , SUM(as_ira) as as_ira
     , SUM(as_saviya) as as_saviya
FROM As_Member_Account_Details
GROUP BY GROUPING SETS ((nic,branch_id),())