客户 类型 应收 还款 应还日 实还日 罚款
甲 A 20 2012/5/10 0
甲 A 30 2012/5/10
甲 B 40 2012/5/18
甲 B 50 2012/5/12
乙 C 60 2012/5/13
乙 C 70 2012/5/20
乙 D 80 2012/5/18
罚款表:客户姓名 比率
甲 1.20%
乙 1.00%
1、提取应还日,将当前时间减去应还日时间大于5天的提取出来。 
2、然后对客户所有的应收进行求和判断,如果还款合计为0,那么,就进行罚款 
3、罚款的公式为罚款表里面的规则,应收*0.1,如果小于5 ,则为5,大于5则不管然后更新罚款金额 
最终结果如下:
客户 类型 应收 还款 应还日 实还日 罚款
甲 A 20 2012/5/10 5
甲 A 30 2012/5/10 5
甲 B 40 2012/5/18 0
甲 B 50 2012/5/12 5
乙 C 60 2012/5/13 9
乙 C 70 2012/5/20 0
乙 D 80 2012/5/18 0

解决方案 »

  1.   

    --建表:
    CREATE TABLE #T1
    (
    kehu varchar(10) not null,
    leixing varchar(10) not null,
    yingshou int not null,
    huankuan int,
    yingshouri datetime,
    shishouri datetime,
    fakuan int
    )
    go
    insert into #T1
    Select '甲','A',20,'','2012-05-10','','' UNION
    Select '甲','A',30,'','2012-05-10','','' UNION
    Select '甲','B',40,'','2012-05-18','','' UNION
    Select '甲','B',50,'','2012-05-12','','' UNION
    Select '已','C',60,'','2012-05-13','','' UNION
    Select '已','C',70,'','2012-05-20','','' UNION
    Select '已','D',80,'','2012-05-18','',''
    Select * from #T1