我现在有三个表,一个是折扣设置表(积分,折扣),一个是卡累计金额表(卡号,累计金额),
一个是卡发放(卡号,折扣率),其中两个卡号是关联的,所谓的积分也就是累计金额,我想实现的是,当累计金额变化时,去向折扣设置表中去寻找它所在的区间断,然后改变此卡号的折扣率,这个代码怎么写,我想在数据库中实现,怎么写,希望各位大侠写的详细一些,每句代码后希望都有注释,多谢,一定给分,在线关注

解决方案 »

  1.   

    折扣设置表(积分,折扣)         t1
    卡累计金额表(卡号,累计金额)    t2
    卡发放(卡号,折扣率)           t3
    update t3 
    set c.折扣率 = 
    (
    select max(m.折扣)
    from t1 m
    where b.累计金额 <= m.积分
    }
    from t2 b,
    t3 c
    where   b.卡号 = c.卡号
      

  2.   

    update t3 
    set c.折扣率 = 
    isnull
    (
      (
    select max(m.折扣)
    from t1 m
    where b.累计金额 >= m.积分
      ),
              0
    )
    from t2 b,
    t3 c
    where   b.卡号 = c.卡号