sql 我的交叉表+行合计+列小计



ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
select b.DTLBRAND,c.trxTypeName, SUM ( ABS (b.DTLACTQTY)) as ' dtlactqty ' into # temp from INV_TRX_DTL_HIS as b,INV_TRX_HEAD_HIS as a,TrxTypeForm as c
where a.HEADTRXTYPE = c.trxType and a.HEADTRXNO = b.DTLTRXNO and b.DTLFROMSUB = ' STK '
and (a.HEADTRXTYPE = ' RS ' OR a.HEADTRXTYPE = ' RD ' OR a.HEADTRXTYPE = ' SS ' OR a.HEADTRXTYPE = ' RL ' OR
a.HEADTRXTYPE
= ' WO ' OR a.HEADTRXTYPE = ' SK ' OR a.HEADTRXTYPE = ' MF ' OR a.HEADTRXTYPE = ' MA ' )
group by b.DTLBRAND,c.trxTypeName

declare @sql varchar ( 8000 )
set @sql = ' select
case when grouping(DTLBRAND)=1 then
'' 合计 '' else DTLBRAND end '' 品牌 '' , '
select @sql = @sql + ' sum(case trxTypeName when ''' + trxTypeName + '''
then dtlactqty else 0 end) as
''' + trxTypeName + ''' , '
from ( select distinct trxTypeName from # temp ) as a
select @sql = left ( @sql , len ( @sql ) - 1 ) + ' ,sum(dtlactqty) as '' 小计 '' from #temp group by rollup(DTLBRAND)
'
exec ( @sql )
drop table # temp

 

 

 
 

转载于:https://www.cnblogs.com/dthom/articles/1830898.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值