首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL2005 多表查询有关问题

2012-08-09 
SQL2005 多表查询问题?每个批次就新建一张表,一天可能生产N个批次,就要建N个表,查询时,比如要查询从2012-5

SQL2005 多表查询问题?
每个批次就新建一张表,一天可能生产N个批次,就要建N个表,
查询时,比如要查询从2012-5-31至2012-6-4,时间段的所有表的详细数据,用什么语句呢?主要是每天的表不确定个数

[解决办法]

SQL code
--1:找到所有天select CONVERT(varchar(12),DATEADD(DAY,number,'2012-05-31'),112)from master..spt_values where type='p' and number between 0 and 4/*------------2012053120120601201206022012060320120604(5 row(s) affected)*/--2:找到所有表/*这块自己写,下面是个例子*/select name from sysobjects where xtype='u'     --截图表名称  和  天数匹配and SUBSTRING(name,1,6) in (    --把之前找到得天数拿过来...    select CONVERT(varchar(12),DATEADD(DAY,number,'2012-05-31'),112)    from master..spt_values     where type='p' and number between 0 and 4)--3: 根据找到的表 拼动态语句(下面的语句 要换成 第二块 找到的所有批次表)declare @sql varchar(max)select @sql=isnull(@sql,'') +' union all select * from '+CONVERT(varchar(12),DATEADD(DAY,number,'2012-05-31'),112)from master..spt_values where type='p' and number between 0 and 4set @sql=STUFF(@sql,1,11,'')print @sql--exec(@sql)/*--------------------------------select * from 20120531 union all select * from 20120601 union all select * from 20120602 union all select * from 20120603 union all select * from 20120604*/ 

热点排行