select * from [1003] union all select * from [1002] union all ......
SELECT * FROM [1003] ORDER BY TIME ?
楼主用动态把表连接起来吧DECLARE @SQL VARCHAR(8000) SET @SQL='' SELECT @SQL=@SQL+'SELECT * FROM [' +NAME+'] UNION ALL' FROM SYSOBJECTS WHERE NAME LIKE '%[0-9][0-9][0-9][0-9]%' ORDER BY NAME DESC
declare @sdate varchar(10),@sql varchar(8000) set @sdate='200901' select @sql=isnull(@sql+' union all ','') +'select * from ['+convert(varchar(6),dateadd(mm,number,@sdate+'01'),112)+']' from master..spt_values where type='P' and dateadd(mm,number,@sdate+'01')<=convert(varchar(6),getdate(),112)+'01'--print @sqlexec (@sql)
用union allselect * , '1001' dt from 1001 union all select * , '1002' dt from 1002 ... order by dt建议你更改表结构,把时间字段加入表,就没有这么麻烦了.
union all
select * from [1002]
union all
......
SET @SQL=''
SELECT @SQL=@SQL+'SELECT * FROM [' +NAME+'] UNION ALL' FROM
SYSOBJECTS WHERE
NAME LIKE '%[0-9][0-9][0-9][0-9]%'
ORDER BY NAME DESC
set @sdate='200901'
select
@sql=isnull(@sql+' union all ','')
+'select * from ['+convert(varchar(6),dateadd(mm,number,@sdate+'01'),112)+']'
from master..spt_values
where type='P' and dateadd(mm,number,@sdate+'01')<=convert(varchar(6),getdate(),112)+'01'--print @sqlexec (@sql)
union all
select * , '1002' dt from 1002
...
order by dt建议你更改表结构,把时间字段加入表,就没有这么麻烦了.