读书人

求SQL句解决方案

发布时间: 2013-07-27 22:21:00 作者: rapoo

求SQL句
Declare @Ta Table (ModuleID int,FieldName Char(5))

insert @Ta
Select 100,'Qty3' Union
Select 100,'Qty4' Union
Select 101,'Qty2' Union
Select 101,'Qty3' Union
Select 101,'Qty4' Union
Select 101,'Qty5'


Declare @Tb Table (ModuleID int,Qty1 int,Qty2 int,Qty3 int,Qty4 int,Qty5 int)

Insert @Tb
Select 100,10,15,1,30,2 Union
Select 101,11,13,31,8,25

1、的ModuleID100,@Ta表的FieldName值Qty3,Qty4;那我只需要@Tb表的字段Qty3,Qty4的值,即1,30
2、的ModuleID101,@Ta表的FieldName值Qty2,Qty3,Qty4,Qty5;那我只需要@Tb表的字段Qty2,Qty3,Qty4,Qty5的值,即15,1,30,2

以上SQL句如何,心求教。! SQL select
[解决办法]
能不能用简体字啊
[解决办法]
如果不用临时表的话,@ta为ta表,@tb为tb表


declare @sql varchar(max)
declare @a varchar(max)
declare @b int
set @b=101
select distinct ModuleID,
a=stuff((select ','+FieldName from ta where a.ModuleID=ModuleID for xml path('') ),1,1,'')
into #t from ta a
where ModuleID=@b
select @a=a from #t
exec('select '+@a+' from tb where moduleid='+@b)

读书人网 >SQL Server

热点推荐