繁体   English   中英

需要在SQL Server中为枢轴列添加总计

[英]Need to add Grand Total for Pivot Column in SQL Server

我有这个查询,按预期工作正常,但是现在我想添加总计,并且不确定在哪里添加列A和列B。有人可以帮忙吗!

select *    
from     
(    
  select f_Parameter,  _company_code,ISNULL(Convert(numeric(18,2),f_value),0) as f_value ,f_Sort_Order ,convert(varchar(11), f_Mis_day,103) as f_Mis_day 
  from TEST with(NOLOCK) where convert(date, f_Mis_day,103) =   CONVERT(date,getdate()-1,103)     
) src    
pivot    
(    
 SUM(f_value)  
 for f_company_code in ([A], [B])    
) piv order by f_Sort_Order;  

输出:

f_Parameter               f_Sort_Order  f_Mis_day     A         B 
------------------------------------------------------------------------
Consumption Amount in INR     1         26/02/2018    10925.80  24495.10  
Transaction Count             2         26/02/2018    5.00      9.00

预期产量:

f_Parameter                   f_Sort_Order  f_Mis_day      A        B           Total
--------------------------------------------------------------------------------------------
Consumption Amount in INR     1             26/02/2018     10925.80 24495.10        35420.90   
Transaction Count             2             26/02/2018     5.00     9.00            14.00   

由于您只寻找很少的公司代码,因此可以使用条件聚合方法。

Declare @date date = cast(dateadd(day, -1, getdate()) as date) 

SELECT 
       f_Parameter, f_Mis_day,
       SUM(CASE WHEN f_company_code = 'A' THEN f_value END) [A],
       SUM(CASE WHEN f_company_code = 'B' THEN f_value END) [B],
       SUM(f_value) Total 
FROM table t
WHERE f_Mis_day = @date 
GROUP BY f_Parameter, f_Mis_day

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM