码迷,mamicode.com
首页 > 数据库 > 详细

电表读数归零回滚SQL处理算法

时间:2014-09-26 13:01:48      阅读:263      评论:0      收藏:0      [点我收藏+]

标签:数据   sp   c   ef   r   算法   bs   sql   as   

     在采集电表数据的时候,可以发现有些电表设备读数会发生回滚。这时候,如果单纯的累加计算用电量,就会出现负值。当然,这也许和电表的质量有关系。

“RTQty”(当前读到的读数)、“LastQty”(上次读数)、“PrecedingQty”(前次读数)、”ErrorFlag”(错误标示)、”IncreaseQty”(增量读数)、“IncreaseQtyOlder”(前次增量读数)。

--判断错误发生标示位

if @ErrorFlag=0

begin

  --错误标示位为0,那么计算本次的增量值

  set @IncreaseQty=@ RTQty -@ LastQty;

 

end

else

begin

 --错误标示位为1,

--计算当前值和上次值的增量@IncreaseQty,

--计算当前值和前次值的增量----@IncreaseQtyOlder

 

 set @IncreaseQty= RTQty - LastQty;

 set @IncreaseQtyOlder= RTQty -@RTQtyOlder;

  if  @IncreaseQtyOlder>=0

  begin

      set @IncreaseQty=@IncreaseQtyOlder

  end

end

 

 

if @IncreaseQty>=0        ---如果增量不为负数

begin

    --更新指定设备的数据点位,上次数值为当前值,更新前次数值为当前值,设置错误标示为0。

    update Meter set LastQty =@RTQty, PrecedingQty =@ RTQty,ErrorFlag=0  where  MeterNo=@MeterNo

   --进行数据的其它计算

end

else

begin

    --更新指定设备的数据点位,上次数值为当前值,设置错误标示为1。

    update Meter set LastQty =@RTQty,ErrorFlag=1  where  MeterNo=@MeterNo

   

    --错误信息插入到警报表

end

 

 

电表读数归零回滚SQL处理算法

标签:数据   sp   c   ef   r   算法   bs   sql   as   

原文地址:http://www.cnblogs.com/ssol/p/3994479.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!