zoukankan      html  css  js  c++  java
  • mysql

    select 
    s.userId,
    t.interestTime,
    sum(
    case 
    when t.interestType = 'A1' 
    then ((s.totalOnInvestedShare*t.yield/100 + s.addshare*s.addyield/100)*t.cycle/365)
    else ((s.totalOnInvestedShare*t.yield/100 + s.addshare*s.addyield/100)*t.days/365)
    end) as interest,
    sum(case 
    when t.interestType = 'A1'
    then s.totalOnInvestedShare
    else (if(t.interestTime=t.endDate,s.totalOnInvestedShare,0))
    end
    ) as capital,
    sum(
    case 
    when t.interestType = 'A1' 
    then 0
    else (if(t.planStatus='ADVANCE',(t.penaltyAmount/t.financedAmount*s.totalOnInvestedShare),0))
    end
    ) as penalty
    from 
    zx_standard_statistics s 
    left join
    (select p.bidNo as bidNo,p.interestTime as interestTime,p.status as status,p.planStatus as planStatus,
    i.yield as yield,
    i.startDate as startDate,
    i.endDate as endDate,
    i.cycle as cycle,
    i.financedAmount as financedAmount,
    e.interestType as interestType,
    a.penaltyAmount as penaltyAmount,
    (
    case 
    when 
    (select count(1) from zx_standard_plan pp where pp.interestTime < p.interestTime and pp.bidNo = p.bidNo order by pp.interestTime desc limit 1) > 0 
    then (select TO_DAYS(date(from_unixtime(p.interestTime)))-TO_DAYS(date(from_unixtime((select pp.interestTime from zx_standard_plan pp where pp.interestTime < p.interestTime and pp.bidNo = p.bidNo order by pp.interestTime desc limit 1))))) 
    else (select TO_DAYS(date(from_unixtime(p.interestTime)))-TO_DAYS(date(from_unixtime(i.startDate)))) 
    end) as days
    from
    zx_standard_plan p
    left join zx_standard_informations i
    on p.bidNo = i.bidNo
    left join zx_standard_extra e
    on e.bidNo = p.bidNo
    left join zx_advance_repay a
    on a.bidNo = p.bidNo
    where
    p.planStatus <> 'VOID' and
    i.bidType <> 'GREEN' and
    i.bidStatus <> 'FINISHED'
    order by p.interestTime asc) t on t.bidNo = s.bidNo where t.status = 'INIT' and t.interestTime >= unix_timestamp(now()) group by s.userId,t.interestTime;
    

    sql语法并没有多复杂,复杂的是业务逻辑,记录的是思路

  • 相关阅读:
    C#控制键盘大小写切换
    C#表示空字符
    正则表达式30分钟入门教程[转自deerchao]
    学习deercao的正则笔记
    c# winform 全角自动转化半角问题(C#中ImeMode的值)
    C# 键盘中的按键对应的KeyValue
    这个Replace可以忽略大小写
    Keys枚举
    反射总结
    C# 中 KeyPress 、KeyDown 和KeyPress的详细区别[转]
  • 原文地址:https://www.cnblogs.com/Smilence1024/p/7999330.html
Copyright © 2011-2022 走看看