数据库表是根据日期生成的字段相同,如何用存储过程把表所有按照时间联合查询出来

数据库里面是按照时间生成数据表如何用存储过程把它们一起查询出来(合并成一张表)会吗帮个忙例如:abc070201第一张表就时2007年02月1日生成的abc070202第... 数据库里面是按照时间生成数据表 如何用存储过程把它们一起查询出来(合并成一张表)会吗帮个忙 例如:abc070201第一张表就时2007年02月1日生成的 abc070202第二张表就时2007年02月2日生成的 abc070202第三张表就时2007年02月3日生成的 一天生成一张按照时间范围查出来(字段里面有开始时间,结束时间) 展开
 我来答
skyfukk
2011-12-28 · TA获得超过1187个赞
知道小有建树答主
回答量:966
采纳率:100%
帮助的人:632万
展开全部
你的情况不建议使用存储过程,建议使用自定义函数,你可以在自定义函数上随意操作

create function FData @begin datetime,@end datetime
returns @table table(表结构)
as
declare @sql varchar(8000)
begin
select @sql=''
while(@begin<=@end)
begin
if(select Count(*) from sysobjects where name='abc'+right(Convert(varchar(10),@bigen,112),6))>0
set @sql= 'select * from abc'+right(Convert(varchar(10),@bigen,112),6)+' where 开始时间>'''+
convert(varchar(22),@begin,120)+''' and 结束时间<''闷芹纤'+convert(varchar(22),@end,120)+''' union all '
end
if(len(@sql)>0)
begin
@sql=left(@sql,len(@sql)-10);
insert into @table exec (@sql)
end
else
raiserror('对不起,您查询的时首皮间段没有任何数据!',16,1)
return (@table)
end

查询出的FData是一张满足时间段的表@begin参数是开始时间@end 参数是结束时间

执行你的对该表的任意操作:
如:
select * from
dbo.FData(Cast('2011-1-1' as datatime),cast('2011-12-1' as datatime)) as a
left join 其他表 as b on a.编号=b.编号

--手写代码,可能蚂仿报错
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式