sql Server 存储过程游标遍历结果集

ALTER PROCEDURE [dbo].[getHourMaxRain]
AS
BEGIN

declare @tm datetime
declare @DRP DECIMAL(18,2)
declare @stcd varchar(1000)
declare @MAXDRP varchar(1000)


-- 声明游标
DECLARE C_Employees CURSOR FAST_FORWARD FOR
   --要进行循环的结果集(根据实际修改查询语句)
 SELECT stcd,tm,DRP from ST_PPTN_R WHERE TM>='2021-04-02 13:30'AND TM<='2021-04-02 14:25:00.000'AND STATUS='ZD' 
AND stcd='51300100'  ORDER BY TM
OPEN C_Employees;
 
-- 取第一条记录,由于上面的查询只有一个字段name,如果有多个字段,需定义多个变量,以逗号分隔
FETCH NEXT FROM C_Employees INTO @stcd,@tm,@DRP; 

 --开始循环
WHILE @@FETCH_STATUS=0

BEGIN
    --要进行的操作(根据实际修改)
 
 SET @DRP+=@DRP
 
 --判断一小时
if CONVERT(varchar(100), @tm, 20)=CONVERT(varchar(100), DATEADD(minute, 60, @tm), 20)
Begin

--判断最大累计雨量
if @DRP>@MAXDRP 
Begin
SET @MAXDRP=@DRP
  	 
End

--判断最大累计雨量结束	 
End
 --判断一小时结束
 
   -- 取下一条记录
    FETCH NEXT FROM C_Employees INTO @stcd,@tm,@DRP;
END
 --结束循环 
 
-- 关闭游标
CLOSE C_Employees;
 
-- 释放游标
DEALLOCATE C_Employees;
 
 SELECT @stcd stcd,@tm tm,@DRP DRP

END

猜你喜欢

转载自blog.csdn.net/yuzheh521/article/details/118518237