MySQL запрос на основе суммы в месяц - PullRequest
0 голосов
/ 03 сентября 2011

Проект касается системы, в которой каждые X минут вызовов, основанных на данном месяце, устанавливают тариф, умноженный на эти вызовы, в результате чего взимается комиссия.

Пример: 1 - 1000 минут = * 0,01, в результате чего выплачивается 10 долларов США, если он составляет 1000 минут, или эквивалент, если он ниже. 1001 - 2000 минут = * 0,02, в результате чего заработная плата составляет 20 долларов, если сделать 2000 минут ... 2000+ минут = * 0,03, поэтому, если сделать 2500 в вызовах, комиссия составит $ 75

Можно ли задать запрос по такой математике? Необходимо учитывать, что пользователь будет задавать разные временные рамки для поиска, например, с 1 по январь до 15 марта.

В январе, если это было сделано 1500 минут, мне придется отображать ежедневный отчет, умноженный на 0,02 В ФЕВ, если это было сделано 4000мин, я буду .... за 0,03 В МАР, если это было сделано за 500 минут до запрашиваемой даты, я ... 0,01

Кроме того, необходимо принять во внимание, что пользователь может искать от 1 до 15 января, и даже если это приводит только к 500 минутам, для расчета должен учитываться целый месяц.

1 Ответ

0 голосов
/ 03 сентября 2011

Если вы используете 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)
    )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...