怎么给sql查询语句添加临时字段,方便列表显示
如题,每天产生一张表,但是表里只有时间字段,没有日期字段。直接用日期来命名的表。比如GSM_20120201,GSM_20120202,GSM_20120203..........根据下面的代码完全能查询出符合条件的信息。就是没有日期的显示,这几天的时间都列出来了。代码如下
declare @dt1 datetime,@dt2 datetime
declare @cellname varchar(30)
declare @sql nvarchar(4000)
set @dt1='2012-01-01'
set @dt2='2012-03-07'
set @cellname='nanliangAG1-1'
select @sql=isnull(@sql+' union all ','')
+'select * from '
+[name]
+' where cell_name like '''+@cellname+'%'''
from sysobjects
where type='U'
and [name] in (select [name] from (
select 'gsm_'+right(convert(varchar(8),dateadd(d,number,@dt1),112),8) as [name]
from master..spt_values
where type='p' and dateadd(d,number,@dt1)<=@dt2)t)
insert into temp exec(@sql)
select * from temp
select @sql
查询出来的是这样的。我想把每一张表的日期标注上,比如从20120104的表,从20120105的表,从201220120105的表。就是把那个表的后缀给加到一个临时字段上显示出来。
时间 小区 代码
2.0nanliangAG1-12708
3.0nanliangAG1-12708
4.0nanliangAG1-12708
5.0nanliangAG1-12708
6.0nanliangAG1-12708
7.0nanliangAG1-12708
8.0nanliangAG1-12708
9.0nanliangAG1-12708
10.0nanliangAG1-12708
11.0nanliangAG1-12708
12.0nanliangAG1-12708
2.0nanliangAG1-12708
3.0nanliangAG1-12708
4.0nanliangAG1-12708
5.0nanliangAG1-12708
就是想显示成这样子
日期时间 时间 小区 代码
20120102 2.0nanliangAG1-12708
20120102 3.0nanliangAG1-12708
20120102 4.0nanliangAG1-12708
20120102 5.0nanliangAG1-12708
20120102 6.0nanliangAG1-12708
20120102 7.0nanliangAG1-12708
20120102 8.0nanliangAG1-12708
20120102 9.0nanliangAG1-12708
20120102 10.0nanliangAG1-12708
20120102 11.0nanliangAG1-12708
20120102 12.0nanliangAG1-12708
20120103 2.0nanliangAG1-12708
20120103 3.0nanliangAG1-12708
20120103 4.0nanliangAG1-12708
20120103 5.0nanliangAG1-12708
20120103 6.0nanliangAG1-12708
20120103 7.0nanliangAG1-12708
20120103 8.0nanliangAG1-12708
20120103 9.0nanliangAG1-12708
20120103 10.0nanliangAG1-12708
该怎么添加临时日期字段呢,谢谢,在线等。
[解决办法]
declare @dt1 datetime,@dt2 datetimedeclare @cellname varchar(30)declare @sql nvarchar(4000)set @dt1='2012-01-01'set @dt2='2012-03-07'set @cellname='nanliangAG1-1'select @sql=isnull(@sql+' union all ','')+'select '''+right([name],8)+''' as data,* from '+[name]+' where cell_name like '''+@cellname+'%'''from sysobjects where type='U' and [name] in (select [name] from (select 'gsm_'+right(convert(varchar(8),dateadd(d,number,@dt1),112),8) as [name]from master..spt_values where type='p' and dateadd(d,number,@dt1)<=@dt2)t)insert into temp exec(@sql) select * from tempselect @sql