多个区站的平均值?

therobinliu 2008-12-02 02:58:36
表: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.tabTimeData

ID 区站号 插入时间 瞬时风速 瞬时风向 温度
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())=0

END
---------------------------------------------------------
表:Meso_2008.dbo.LN_200812中的数据是每分钟生成一条的,我想要每隔小时计算一次,生成这个小时的平均数据。另外我下面写的是查询一个区站的语句,多个区站怎么处理啊?第一个表里一共18个区站,几万条数据呢,怎么办啊,鼓捣一天了,也没算出来。大伙多费心了
------------------------------------------------------------




...全文
73 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawugui 2008-12-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 therobinliu 的回复:]
消息 8120,级别 16,状态 1,过程 selcetLNFXQXJ,第 29 行
选择列表中的列 'OPENROWSET.区站号' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
[/Quote]
方法如1楼,自己去组合语句.
therobinliu 2008-12-02
  • 打赏
  • 举报
回复
消息 8120,级别 16,状态 1,过程 selcetLNFXQXJ,第 29 行
选择列表中的列 'OPENROWSET.区站号' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
dawugui 2008-12-02
  • 打赏
  • 举报
回复
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'
hyde100 2008-12-02
  • 打赏
  • 举报
回复
好长

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧