促销规则中的多级满减。我画一个表如下
促销规则号  行号  满足条件   减现
00000001     1      480       50
00000001     2      980       100
00000001     3      2800      300
00000001     4      5800      700规则为 购物满480减50  一次类推
要写一个sql或者函数 展现为  
促销规则      满足条件           减现
00000001  480/980/2800/5800  50/100/300/700

解决方案 »

  1.   


    select 促销规则号,replace(wm_Concat(满足条件),',','/'),replace(wm_Concat(减现),',','/'),
      from table_name
     group by 促销规则号
      

  2.   

    10g以上试试如下:
    select 促销规则
      ,listagg(满足条件,'/') within group (order by 行号) 满足条件
      ,listagg(减现,'/') within group (order by 行号) 减现
    from ...
      

  3.   

    create or replace procedure a(a in varchar2,b out number)
    as 
    c number;
    d number;
    e number;
    begin
    select 商品总价 into c from 商品表;
    select 行号,减现 into d,e from 手绘表 where 满足条件>c;
    b:=c-e;
    end;
      

  4.   

    設置此表名為tSale
    促銷規則:saleRuleNo
    滿足條件:LevelMoney
    減去額度:minusMoney
    假如說該客戶的買的物品的價格是P,促銷序列號為N,則SQL語句如下:
    select A.* from (select rownum rn,p-minusMoney from tSale where LevelMoney<P and saleRuleNo=N order by LevelMoney desc) A
    where A.rn=1
      

  5.   

    設置此表名為tSale
    促銷規則:saleRuleNo
    滿足條件:LevelMoney
    減去額度:minusMoney
    假如說該客戶的買的物品的價格是P,促銷序列號為N,則SQL語句如下:
    select A.* from (selectp-minusMoney from tSale where LevelMoney<P and saleRuleNo=N order by LevelMoney desc) A
    where A.rn=1