|
select Name,Value,Date from Table1 Name Value Date ---------------------- name1 value1 date1 name2 value1 date1 name1 value1 date2 name2 value1 date2 name3 value1 date2 name2 value1 date3 name4 value1 date3 改为: Date name1 name2 name3 name4 ----------------------------------------- date1 value1 value2 date2 value1 value2 value3 date3 value2 value4 |
|
|
declare @sql varchar(8000)
set @sql = 'select [Date]' select @sql = @sql + ',max(case [Name] when '''+[Name]+''' then Value end) ['+[Name]+']' from (select distinct [Name] from 有一表) as a select @sql = @sql+' from 有一表 group by [Date]' exec(@sql) go |
|
|
如果value是数字类型且需要value求和:
declare @sql varchar(8000) set @sql = 'select [Date]' select @sql = @sql + ',sum(case [Name] when '''+[Name]+''' then Value else 0 end) ['+[Name]+']' from (select distinct [Name] from 有一表) as a select @sql = @sql+' from 有一表 group by [Date]' exec(@sql) go |
|
|
|
赫赫,交叉表的做法。
|
|
|
太正确了,但是SQL的交叉表限制死了(值得时列名)
不能推广,除非定死了,就要那些字段 |
|
|
谢谢!怎么给分
还有没有其他的做法 |
|