自动发送条件: 
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),虽然达到标准,但因为前面已经达到比这次高的标准了
数据表:时间,站号,风力,温度~~~~~~~~~
请问数据库应该怎么实现这功能,想得头大了,各位高手帮帮忙

解决方案 »

  1.   

    你数据库系统里肯定有实时风速表 数据应该是不间断插入 写一段大致参考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
      ...
      

  2.   

    如果数据单次插入行>1就不行了 MSSQL里面有没有行级触发器? 
      

  3.   

    在inserted,deleted里是所有数据,可以游标或其它方式一个一个处理