CREATE Procedure AutoInsert
as
begin
declare @s1 varchar(8000),@s2 varchar(8000),@s3 varchar(8000)
select @s1='insert into table1 select tagtime',@s2='',@s3=''
select @s1=@s1+',['+rtrim(tagname)+']=max(case tagname when '''+rtrim(tagname)+''' then tagvalue end)' from table3 where ID <=90 order by ID
select @s2=@s2+',['+rtrim(tagname)+']=max(case tagname when '''+rtrim(tagname)+''' then tagvalue end)' from table3 where ID between 91 and 180 order by ID
select @s3=@s3+',['+rtrim(tagname)+']=max(case tagname when '''+rtrim(tagname)+''' then tagvalue end)' from table3 where ID between 181 and 220 order by ID
exec(@s1+@s2+@s3+' from table2 group by tagtime')
--exec('insert into table1 '+@s1+@s2+@s3+' from table3 group by tagtime')
end