导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

触发条件发送的问题

ben19850410 2007-12-04 11:10:48
自动发送条件:
1、 风速(20时开计),当日瞬时极大风速达到(≥17.2米/秒、≥20.8米/秒、≥24.5米/秒、≥28.5米/秒、≥32.7米/秒、≥37.0米/秒、≥41.5米/秒、≥46.2米/秒、≥51.0米/秒、≥56.1米/秒)时,就发送。
一日内,达到发送条件,只发一次,就高
例:当天20时后,1号站22:52风速为25.6米/秒(达到≥24.5米/秒),就发;1号站23:02风速为40.6米/秒(达到≥37.0米/秒),再发;
1号站23:32风速为32.7米/秒,不发
同时,多个站达到条件,就组成在1条短信内
2、 日最高气温≥37.0℃、≥39.0℃,
3、 日最低气温≤5.0℃、≤0℃
4、 电池电压≤10.5V

自动发送的条件,只要系统检测到条件符合,系统也会及时地将数据发送给用户,达到某一标准只发送一次,达到另一标准再发送一次,不同项目同时达到标准同时发送,当达到某个标准后,如果后面还有达到标准的,但该标准低于前面一次标准,不发送,例如:1点的风速为25(》24.5),发送一次,1点半的风速为22(》20.8),虽然达到标准,但因为前面已经达到比这次高的标准了
数据表:时间,站号,风力,温度~~~~~~~~~
请问数据库应该怎么实现这功能,想得头大了,各位高手帮帮忙
...全文
45 点赞 收藏 5
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
-狙击手- 2007-12-04
在inserted,deleted里是所有数据,可以游标或其它方式一个一个处理
回复
rouqu 2007-12-04
如果数据单次插入行>1就不行了 MSSQL里面有没有行级触发器?
回复
rouqu 2007-12-04
你数据库系统里肯定有实时风速表 数据应该是不间断插入 写一段大致参考

create trigger t_xxx on tb_speed_record
for insert
as
declare @speed numeric(3,0)
select @speed = speed from inserted
if @speed >=17.2 --add condition
begin
if (@speed > (select max(speed) from tb_speed_record))
xp_cmdshell ...
else
...
end
else
...
回复
ben19850410 2007-12-04
数据表:时间,站号,风力,温度~~~~~~~~~
实现用户可以定制要哪项信息:风力,温度,电压,定制了项目后,为每个项目勾选站点,有14个站
用户定制表:用户号码,站号,项目,标准,已发送标志

我数据库是这样设计的,现在问题是:到某一标准只发送一次,达到另一标准再发送一次,不同项目同时达到标准同时发送,当达到某个标准后,如果后面还有达到标准的,但该标准低于前面一次标准,不发送

请高手指点
回复
-狙击手- 2007-12-04
条件的判断并不复杂呀,
你的难题在哪?发送?
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告