原帖地址:
http://community.csdn.net/Expert/topic/3452/3452577.xml?temp=.1377375
--示例数据
create table [table](A sysname,B varchar(10))
insert [table] select 'table_1','a'
union all select 'table_2','b'
create table table_1(A int)
insert table_1 select 1
union all select 2
create table table_2(A int)
insert table_2 select 3
union all select 4
go
/*--问题说明:
table中,A字段存储着其他表的名称
A字段中,记录和各个表的A字段的最大值
即得到如下结果:
table.B C
-------- -----------
a 1
b 2
--*/
--处理方法
declare @s varchar(8000)
set @s='
select @s=@s+' when ''+A+'' then(select max(A) from ['+A+'])'
from [table] group by A
exec('select B,C=case A'+@s+' end from [table]')
go
--删除测试
drop table [table],table_1,table_2
/*--测试结果
B C
---------- -----------
a 2
b 4
--*/