sql server with rollup+pivot 实现小计+行转列 实例

本文通过创建临时表并插入数据的方式演示了如何使用SQL进行数据聚合及Pivot操作,具体展示了按月份汇总金额并展示总计的过程。
create table #test
(
	time datetime,
	money	int
)
insert into #test values('2018-03-01',100),('2018-03-01',100),('2018-09-01',100)


select * from(
	select	case when GROUPING(DATEPART(MONTH,time))=1 then '合计' else
			convert(varchar(2),DATEPART(MONTH,time))+'月' end as mon,
			SUM(money) as [money]
	from #test
	where DATEPART(YEAR,time)='2018'
	group by DATEPART(MONTH,time)
	with rollup
) a


pivot
(
	sum(money)
	for mon in([1月],[2月],[3月],[4月],[5月],[6月],[7月],[8月],[9月],[10月],[11月],[12月],[合计])
	
)b


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值