sybase语法备忘

create procedure aa_set_rate(
                               @p_company varchar(50),
                               @p_period  varchar(50),
                               @p_step_id varchar(50),
                               @p_from_business_code varchar(50),
                               @p_to_business_code varchar(50), 
                               @p_rate float,
                               @p_source varchar(50))
as
   declare  @v_count int,
            @v_from_business_code varchar(50),
            @v_new_rate float,
            @v_rate_id  varchar(50)

   declare c_rate cursor for
          SELECT from_business_code,
                 new_rate = SUM(rate) * @p_rate 
            FROM aa_rates
           WHERE company_code = @p_company
             AND period = @p_period
             AND to_business_code = @p_from_business_code
           GROUP BY From_business_code 
  BEGIN

    if @p_from_business_code = @p_to_business_code
        print 'p_to_business_code = %1! ',  @p_from_business_code
       return 0 
       
    if @v_count > 0 
       begin 
          open c_rate
          fetch /*next from*/ c_rate into @v_from_business_code,@v_new_rate
            while @@sqlstatus  = 0 
                begin 
                    exec aa_get_next_secquence  @p_table_name = 'AA_RATES',@p_next_sequence =@v_rate_id  output

                    INSERT INTO aa_rates
                      (rate_id,
                       company_code,
                       period,
                       from_business_code,
                       to_business_code,
                       rate,
                       SOURCE,
                       step_id,
                       creation_date,
                       created_by,
                       last_update_date,
                       last_updated_by)
                       VALUES(
                             @v_rate_id ,                            
                             @p_company,
                             @p_period,
                             @v_from_business_code,
                             @p_to_business_code,
                             @v_new_rate,
                             'INDIRECT',
                             @p_step_id,
                             getdate(),
                             '0',
                             getdate(),
                             '0')
                    fetch /*next from*/ c_rate into @v_from_business_code,@v_new_rate
               end           
               close c_rate
               deallocate cursor c_rate
       end  
END                             
                  
      

 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值