求一sql语句,交叉表
求一sql语句,交叉表
有这样一个表
=====================================================
车号 吨数 时间 装车点
8 15 2006-01-01 08:00:00 1号站
14 20 2006-01-01 08:00:00 2号站
50 15 2006-01-01 08:00:00 1号站
2 18 2006-01-01 08:01:00 4号站
8 15 2006-01-01 09:00:00 1号站
4 16 2006-01-01 09:00:00 5号站
=====================================================
要生成以下表格(装车点也许会有增减)
车号 1号站车数合计 1号站吨数合计 2号站车数合计 2号站吨数合计 4号站车数合计 4号站吨数合计 5号站车数合计 5号站吨数合计 车数合计 吨数合计
8
14
50
2
4
------解决方案-------------------- Declare @S Nvarchar(4000)
Select @S = 'Select 车号 '
Select @S = @S + ', SUM(Case 装车点 When ' ' ' + 装车点 + ' ' ' Then 1 Else 0 End) As [ ' + 装车点 + '车数合计] '
+ ', SUM(Case 装车点 When ' ' ' + 装车点 + ' ' ' Then 吨数 Else 0 End) As [ ' + 装车点 + '吨数合计] '
From 表 Group By 装车点
Select @S = @S + ' , Count(*) As 车数合计, SUM(吨数) As 吨数合计 From 表 Group By 车号 '
EXEC(@S)