期列转行做表头带星期的和求和的

来源:互联网 发布:php的发展前景 编辑:程序博客网 时间:2024/06/15 16:46

示例图!


--测试数据if not object_id(N'Tempdb..#T') is nulldrop table #TGoCreate table #T([name] nvarchar(22),[date] Date,[value] int)Insert #Tselect N'吉斌','2017-07-01',10 union allselect N'吉斌','2017-07-02',9 union allselect N'吉斌','2017-07-03',4 union allselect N'梁军','2017-07-01',10 union allselect N'梁军','2017-07-02',10 union allselect N'梁军','2017-07-03',17Go--测试数据结束declare @sql varchar(8000)declare @sql1 varchar(8000)set @sql='select Name as '+'部门'set @sql1='select ''总计'''select @sql=@sql+' , max(case [date] when '''+RTRIM([date])+''' then [value] else 0 end) ['+ RTRIM([date])+DATENAME(dw,[date]) +']'from (select distinct [date] from #T) as a order by riqiselect @sql1=@sql1+' , sum(['+RTRIM([date])+DATENAME(dw,[date])+'])'from (select distinct [date] from #T) as a order by riqiset @sql=@sql+',sum(value) 总计 from #T group by name'set @sql1=@sql1+',sum(总计) 总计 from ('+@sql+')t'EXEC(@sql + ' union '+@sql1) 


原创粉丝点击