CREATE OR REPLACE PROCEDURE ps_uprecord(myDate IN DATE)
--myDate 作为入参
AS
BEGIN
UPDATE MONEY_INFO SET total_money=total_money+100,add_date=myDate
WHERE
total_flag<>'1';
END;执行的时候,exec ps_uprecord('你的日期'),格式一定要和数据库的日期格式相同,我觉得add_date 定义为char型好处理.希望对你有所帮助.
--myDate 作为入参
AS
BEGIN
UPDATE MONEY_INFO SET total_money=total_money+100,add_date=myDate
WHERE
total_flag<>'1';
END;执行的时候,exec ps_uprecord('你的日期'),格式一定要和数据库的日期格式相同,我觉得add_date 定义为char型好处理.希望对你有所帮助.
as
begin
update MONEY_INFO SET total_money=total_money+100 where add_date between p_sdate and p_edate and total_flag='1';
end;
/
IDCARD TOTAL_MONEY ADD_DATE TOTAL_FLAG
001 400 2003-01-01 1
002 0
003
向上面的三条记录,遍历处理每一条记录,第一条记录则比较时间是否大于2003-01,如果是一月,则不进行total_money的累加,如果是二月(2003-03),则total_money累加100,为500。如果是3月(2003-03),则累加200,变为600。
第二条记录,total_flag为0,则不对此条记录处理。
第三条记录,total_flag为空,也不作处理。如何实现???