SQL 数据增加 小计 及 合计行

 

CREATE   TABLE   [ dbo ] . [ A ] (
    
[ SalesOrg ]   [ nvarchar ] ( 4 ) COLLATE SQL_Latin1_General_CP850_BIN2  NOT   NULL ,
    
[ SalesGroup ]   [ nvarchar ] ( 20 ) COLLATE SQL_Latin1_General_CP850_BIN2  NOT   NULL ,
    
[ DocumentType ]   [ nvarchar ] ( 25 ) COLLATE SQL_Latin1_General_CP850_BIN2  NULL ,
    
[ DocumentName ]   [ nvarchar ] ( 20 ) COLLATE SQL_Latin1_General_CP850_BIN2  NULL ,
    
[ CSName ]   [ nvarchar ] ( 50 ) COLLATE SQL_Latin1_General_CP850_BIN2  NOT   NULL ,
    
[ Qty ]   [ int ]   NULL ,
    
[ Amount ]   [ numeric ] ( 38 2 NULL
ON   [ PRIMARY ]


select   case   grouping (DocumentType)
           
when   1   then   ' Total '
           
when   0   then
                
case   grouping (SalesOrg)
                   
when   1   then  DocumentType  +   '  SubTotal '
                   
when   0   then  DocumentType
                
end
         
end  DocumentType,
         SalesOrg,SalesGroup,DocumentName,CSName,
sum (Qty) qty, sum (Amount) Amt
   
from   [ A ]
group   by  DocumentType, SalesOrg,SalesGroup,DocumentName,CSName  with  rollup
having   grouping (SalesOrg)  +   grouping (SalesGroup)  +   grouping (DocumentType)
+ grouping (DocumentName) + grouping (CSName)  =   0
or   grouping  (SalesOrg)  +   grouping (SalesGroup) + grouping (DocumentName) + grouping (CSName)  =   4

 

数据如下:
AA                    S1          G1         A            Helen      3               100
AA                    S2          G1         A            Lui           2               200
AA SubTotal   NULL    NULL    NULL    NULL      5               300

BB                    S1          G1         A            Helen      3               100
BB                    S2          G1         A            Lui           2               100
BB SubTotal   NULL    NULL    NULL    NULL      5               200
Total                NULL    NULL    NULL    NULL      10             500

转载于:https://www.cnblogs.com/s021368/archive/2009/07/07/1518342.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值