加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

oracle中declare程序块用法

(2020-02-19 23:15:21)
标签:

it

分类: Oracle
declare
  p_curmoneySum  number(18, 4);
  p_placepointid number(10);
  p_rsaid        number(10);
  p_goodsqtysum  number(18, 6);
  p_realmoneysum number(18, 4);

  cursor p_goods_sale_c IS
    select placepointid,
           rsaid,
           sum(goodsqty) as goodsqtysum,
           sum(realmoney) as realmoneysum
      from GRESA_SA_DETAIL_V
     where rsaid not in (select rsaid from ZX_RSAID_ALAN_TEMP)
       and sellDate between to_date('2019-01-01', 'yyyy-mm-dd') and
           to_date('2019-12-31 23:59:59', 'yyyy-mm-dd hh24:mi:ss')
     group by placepointid, rsaid
     order by realmoneysum asc;

begin

  p_curmoneySum := 300000.0;

  open p_goods_sale_c;

  fetch p_goods_sale_c
    into p_placepointid, p_rsaid, p_goodsqtysum, p_realmoneysum;
  while p_goods_sale_c%found loop
  
    p_curmoneySum := p_curmoneySum - p_realmoneysum;
  
    if p_curmoneySum > 0 then
    
      insert into ZX_REDUCE_RSAID_TEMP (rsaid) values (p_rsaid);
    
    else
    
      exit;
    
    end if;
  
    fetch p_goods_sale_c
      into p_placepointid, p_rsaid, p_goodsqtysum, p_realmoneysum;
  
  end loop;

  close p_goods_sale_c;

end;

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有