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

如何动态的设置表名

2012-08-11 
怎么动态的设置表名?数据库结构是这样的,有很多个站点,使用编年表的形式存储数据。每个站点每一年会有一张

怎么动态的设置表名?
数据库结构是这样的,有很多个站点,使用编年表的形式存储数据。
每个站点每一年会有一张表。表字段有,站点名,值,时间。表名结构是:站点名_年份。每一个小时有一条数据产生。
我想查询每一个站点某一个月的平均值。需要从小时数据计算到日均数据,再从日均数据计算出月均数据。

但由于年份是动态的,所以表名也是动态的。如何在循环中,动态设置表名?我使用存储过程能设置带变量的表名,不能用循环。用循环又不能设置带变量的表名。如何解决?




[解决办法]

SQL code
@Year int --年份, @beginDate datetime--开始时间 ,@endDate datetime--结束时间,@Station decimal(18, 3)--站点的值begin  set @endDate=cast(DATEADD(MM,1,@beginDate ) as datetime) --结束时间是开始时间加一个月  while @beginDate<@endDate  begin -- select @Station= ( select monthAvg from 站点名_@Year )  exec('insert into 另外一个表 select beginDate='  +@beginDate+',monthAvg from 站点名_'+cast(@Year as varchar))--把时间和月均值插入另一个表  set @beginDate = cast(DATEADD(dd,1,@beginDate ) as datetime) --加一天  endendtry 

热点排行