表:Meso_2008.dbo.LN_200812
ID      区站号            插入时间                   瞬时风速    瞬时风向   温度
1 L6509    2008-12-2 14:41:00  3   141      2.2
2 L6509    2008-12-2 14:40:00 2   131      3.1 
3 L6509    2008-12-2 14:39:00 5       124      4.2
4 L6510    2008-12-2 14:41:00  3   141      2.2
5 L6510    2008-12-2 14:40:00 2   131      3.1 
6 L6510    2008-12-2 14:39:00 5       124      4.2------------------------------------------------------------------------
表:dbo.tabTimeDataID      区站号            插入时间                   瞬时风速    瞬时风向   温度
1 L6509    2008-12-2 15:00:00  3.3   132      3.2
2 L6510    2008-12-2 15:00:00  3.3   132      3.2-------------------------------------------------------------------------
ALTER PROCEDURE [dbo].[selcetLNFXQXJ] 
-- Add the parameters for the stored procedure here 
@p1 int = 0 
AS 
BEGIN 
-- SET NOCOUNT ON added to prevent extra result sets from 
-- interfering with SELECT statements. 
SET NOCOUNT ON;     -- Insert statements for procedure here     INSERT dbo.tabTimeData( 区站号, 入库时间, 通信方式, 日期时间, 电源状态, 瞬时风速, 瞬时风向, 二分风速, 二分风向, 十分风速, 十分风向, 极大风速, 极大风向, 极大风速对应时间, 最大风速, 最大风向, 最大风速对应时间, 分钟雨量, 一小时雨量, 十分钟最大雨强, 最大雨强出现时间, 空气温度, 最高气温, 最高气温出现时间, 最低气温, 最低气温出现时间, 相对湿度, 最小湿度, 最小湿度出现时间, 本站气压, 最高气压, 最高气压出现时间, 最低气压, 最低气压出现时间) 
                   select 
                          cast(区站号  as char(8)), 
                          cast(插入时间 as datetime), 
                              'G', 
                          cast(观测时间 as datetime), 
                          cast(电池电压 as char(8)), 
                          cast(瞬时风速 as int), 
                          cast(瞬时风向 as int), 
                          cast(二分钟平均风速 as int), 
                          cast(二分钟平均风向 as int), 
                          cast(十分钟平均风速 as int), 
                          cast(十分钟平均风向 as int), 
                          cast(极大风速 as int), 
                          cast(极大风速的风向 as int), 
                          cast(极大风速出现时间 as char(10)), 
                          cast(最大风速 as int), 
                          cast(最大风速的风向 as int), 
                          cast(最大风速出现时间 as char(10)), 
                          cast(小时每分钟雨量 as char(120)), 
                          cast(小时雨量 as int), 
                          NULL, 
                          NULL, 
                          cast(气温 as int), 
                          cast(最高气温 as int), 
                          cast(最高气温出现时间 as char(10)), 
                          cast(最低气温 as int), 
                          cast(最低气温出现时间 as char(10)), 
                          cast(相对湿度 as int), 
                          cast(最小相对湿度 as int), 
                          cast(最小相对湿度出现时间 as char(10)), 
                          cast(本站气压 as int), 
                          cast(最高本站气压 as int), 
                          cast(最高本站气压出现时间 as char(10)), 
                          cast(最低本站气压 as int), 
                          cast(最低本站气压出现时间 as char(10))
                    from openrowset('SQLOLEDB','FXQXJ';'sa';'sa',Meso_2008.dbo.LN_200812) 
                    where  区站号 = 'l6509' and datediff(hh,插入时间,getdate())=0END 
---------------------------------------------------------
表:Meso_2008.dbo.LN_200812中的数据是每分钟生成一条的,我想要每隔小时计算一次,生成这个小时的平均数据。另外我下面写的是查询一个区站的语句,多个区站怎么处理啊?第一个表里一共18个区站,几万条数据呢,怎么办啊,鼓捣一天了,也没算出来。大伙多费心了
------------------------------------------------------------

解决方案 »

  1.   

    INSERT dbo.tabTimeData( 区站号, 入库时间, 通信方式, 日期时间, 电源状态, 瞬时风速, 瞬时风向, 二分风速, 二分风向, 十分风速, 十分风向, 极大风速, 极大风向, 极大风速对应时间, 最大风速, 最大风向, 最大风速对应时间, 分钟雨量, 一小时雨量, 十分钟最大雨强, 最大雨强出现时间, 空气温度, 最高气温, 最高气温出现时间, 最低气温, 最低气温出现时间, 相对湿度, 最小湿度, 最小湿度出现时间, 本站气压, 最高气压, 最高气压出现时间, 最低气压, 最低气压出现时间) 
     select 
     区站号, 
     convert(varchar(7) , 插入时间 ,120) + '-00', 
     'G', 
     cast(avg(电池电压) as char(8)), 
     ...
     cast(avg(最低本站气压) as int), 
     from openrowset('SQLOLEDB','FXQXJ';'sa';'sa',Meso_2008.dbo.LN_200812) 
    group by 区站号 , convert(varchar(7) , 插入时间 ,120) + '-00' 
      

  2.   

    消息 8120,级别 16,状态 1,过程 selcetLNFXQXJ,第 29 行
    选择列表中的列 'OPENROWSET.区站号' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。