declare @tablename char(20),@year char(4)select @year='2004' select @tablename='表'+@yearexec('select * from ['+@tablename+']')
比如有如下过程: select sum(余额) from 记录0103 where id in ( select max(id) from 记录0103 left join 关系号 on 记录0103.关系号=关系号.关系号 where 证号<=终止证号 and 关系号.一级=1 group by 关系号.关系号 ) 要把‘记录0103’变为变量有办法吗
好象没有什么好办法,函数也不支持exec语句。
declare @sql varchar(500) declare @tablename varchar(20) select @tablename='记录0103' select @sql=' select sum(余额) from ' + @tablename + ' where id in ( select max(id) from ' + @tablename + ' d_table left join 关系号 on d_table.关系号=关系号.关系号 where 证号<=终止证号 and 关系号.一级=1 group by 关系号.关系号 )' exec(@sql)
select @tablename='表'+@yearexec('select * from ['+@tablename+']')
select sum(余额) from 记录0103
where id in
(
select max(id)
from 记录0103
left join 关系号 on 记录0103.关系号=关系号.关系号
where 证号<=终止证号 and 关系号.一级=1
group by 关系号.关系号
)
要把‘记录0103’变为变量有办法吗
declare @tablename varchar(20)
select @tablename='记录0103'
select @sql='
select sum(余额) from ' + @tablename + '
where id in
(
select max(id)
from ' + @tablename + ' d_table
left join 关系号 on d_table.关系号=关系号.关系号
where 证号<=终止证号 and 关系号.一级=1
group by 关系号.关系号
)'
exec(@sql)