MySQL查询基于每月SUM

时间:2011-09-02 20:36:20

标签: mysql join

该项目是关于一个系统,在该系统中,基于给定月份的每X分钟呼叫设置一个速率,乘以这些呼叫导致支付佣金。

实施例: 1 - 1000分钟= * 0.01如果1000分钟,则产生10美元的工资,如果较低,则产生相当于10美分的工资。 1001 - 2000分钟= * 0.02如果花了2000分钟就会产生20美元的工资...... 2000+分钟= * 0.03,所以如果拨打2500电话,佣金将是75美元

是否可以为此类数学设置查询?需要考虑的是用户将设置不同的时间范围进行搜索,例如,从1月1日到3月15日。

在JAN,如果它是1500分钟,我将必须显示每0.02的每日报告倍数 在FEB,如果它是4000分钟,我会......每0.03 在MAR,如果在查询日期之前做了500分钟,我将...... 0.01

还需要考虑,用户可能正在搜索1月1日至15日,即使结果只有500分钟,也应考虑整个月的计算结果。

1 个答案:

答案 0 :(得分:0)

如果你正在使用mysql,也许你可以做这样的事情?

select 
     mon,
     case
         when total_time <= 1000
              then total_time * 0.01
         when total_time > 1000 
          and total_time <= 2000
              then total_time * 0.02
         when total_time > 2000
              then total_time * 0.03
     end case as pay
from
    (select
         sum(minutes) total_time,
         extract(month from date) mon
     from 
         calls
     group by 
         extract(month from date)
    )