1. select 时间,北京=(select 数据 from 表 where 地名='北京' and 时间=a.时间), 天津=(select 数据 from 表 where 地名='天津' and 时间=a.时间) from 表 a group by 时间
select 时间,北京=( case 地名 when 北京 then 数据 ),天津=( case 地名 when 天津 then 数据 )from 表 a group by 时间
我不是楼主,我是来学习的to :Softlee81307(孔) 小弟佩服,向你学习!!declare @a table(时间 datetime,地名 nvarchar(20),数据 int) insert @a(时间,地名,数据) values('1990-1-1','北京',85) insert @a(时间,地名,数据) values('1990-1-2','北京',92) insert @a(时间,地名,数据) values('1990-1-1','天津',52) insert @a(时间,地名,数据) values('1990-1-2','天津',98) select * from @aselect 时间,北京=(select 数据 from @a where 地名='北京' and 时间=a.时间), 天津=(select 数据 from @a where 地名='天津' and 时间=a.时间) from @a a group by 时间
declare @mystr varchar(8000) set @mystr='' select @mystr=@mystr + ',min(case 地名 when ''' + 地名 + ''' then 数据 end) ' + 地名 from (select distinct 地名 from a) a set @mystr='select 时间' + @mystr + ' from a group by 时间' exec(@mystr)
天津=(select 数据 from 表 where 地名='天津' and 时间=a.时间) from 表 a group by 时间
小弟佩服,向你学习!!declare @a table(时间 datetime,地名 nvarchar(20),数据 int)
insert @a(时间,地名,数据)
values('1990-1-1','北京',85)
insert @a(时间,地名,数据)
values('1990-1-2','北京',92)
insert @a(时间,地名,数据)
values('1990-1-1','天津',52)
insert @a(时间,地名,数据)
values('1990-1-2','天津',98)
select * from @aselect 时间,北京=(select 数据 from @a where 地名='北京' and 时间=a.时间),
天津=(select 数据 from @a where 地名='天津' and 时间=a.时间) from @a a group by 时间
set @mystr=''
select @mystr=@mystr + ',min(case 地名 when ''' + 地名 + ''' then 数据 end) ' + 地名 from (select distinct 地名 from a) a
set @mystr='select 时间' + @mystr + ' from a group by 时间'
exec(@mystr)