2011-09-02 76 views
0

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

例如: 1 - 1000分钟= * 0.01如果1000分钟或等同于1000分钟,则产生10美元的支付。 2001至00年=分钟0.02 *导致$ 20的工资,如果发2000mins ... 2000+分钟= * 0.03,因此,如果在调用发出2500年,佣金为$ 75

是否有可能设置一个查询这样的数学?需要考虑用户将设置不同的时间范围进行搜索,例如从1到1月到3月15日。

1月,如果有人1500mins,我将不得不显示的每日报告每0.02 乘以2月,如果有人4000min,我会....每0.03 在MAR,如果它被做500min直到查询日期,我会... 0.01

它还需要考虑,用户可能会搜索1月15日,即使只有500分钟,整个月应采取考虑计算。

+0

这些分层?也就是说,您在前1000分钟内支付0.01美元,第二个1000分钟内支付0.02美元等等。或者,这是否意味着如果您有1400分钟,则您将支付全部1400美元的0.02美元。 – JeffIB

+0

另外,您是否可以提供DDL? – JeffIB

+0

您将支付所有1400的0.02。谢谢 – Henrique

回答

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) 
    )