表1 ywgl_fcwk 字段1“发出未开天数” 字段2“罚款比例” 字段3 “罚款金额” 字段4 未结金额
表2 ywgl_sctzd 字段“材料费”
现有如此需求:
如果:(1)  发出未开天数>= 31 and 发出未开天数 <= 60   则 罚款比例=0.001 ,罚款金额=未结金额*0.001
(2)发出未开天数>= 61 and 发出未开天数 <= 90   则 罚款比例=0.015,罚款金额=未结金额*0.015
(3)发出未开天数>= 91  则 罚款比例=0.2,罚款金额=材料费*0.2
请问sql语句怎么写??

解决方案 »

  1.   

    用case写
    case when 发出未开天数>= 31 and 发出未开天数 <= 60 then 罚款比例=0.001 when 发出未开天数>= 61 and 发出未开天数 <= 90 then 罚款比例=0.015 when 发出未开天数>= 91 then 罚款比例=0.2 endcase when 发出未开天数>= 31 and 发出未开天数 <= 60 then 罚款金额=未结金额*0.001 when 发出未开天数>= 61 and 发出未开天数 <= 90 then 罚款金额=未结金额*0.015
     when 发出未开天数>= 91 then 罚款金额=材料费*0.2 end
      

  2.   

    1、then 罚款金额=(select 材料费 from 表2 where ....)*0.2 end
    2、 表1、表2连接。
    then 罚款金额=表2.材料费*0.2 end
    from 表1,表2 where 表1.xxx=表2.xxx