T1
--------------
…… Person1  
…… person2
…… person3
---------------T2
------------------
person1 item1 100
person1 item2 200
person1 itme3 200
person2 item1 100
person2 item3 200
person3 item4 600
……    ……   ……
------------------
我要的结果为-------------------------------
Person  Item1 Item2 Item3 Item4
person1 100   200   200
person2 100         200
person3                   600
…………………………………………
----------------------------------
Item1,item2 item3 item4 是动态的。用Sql实现,并且在结果集中可以修改,谁会,帮帮忙!

解决方案 »

  1.   

    参考:
    create table #temp(field1 varchar(10),field2 int)
    go
    declare @a varchar(10)
    declare @b int
    declare @sql nvarchar(300)
    declare ctr cursor for select field1 from tableB
    open ctr
    fetch next from ctr into @a
    while @@fetch_status<>-1
    begin
      set @sql='select top 1 @m='+@a+' from tableA '
      exec sp_executesql @sql,N'@m int output',@b output
      insert into #temp(field1,field2) values (@a,@b)
      fetch net from ctr into @a
    end
    close ctr
    deallocate ctr
    go
    select * from #temp