У меня есть 2 таблицы = клиент и его история звонков
Теперь я хочу взимать с них плату в зависимости от продолжительности звонка, и это также для определенного месяца, например, января 2015 года.
Вот критерии для расчета стоимости звонков -
A) Для входящих звонков плата составляет 1 единицу в секунду. Example if the duration is 250 seconds then cost is 250
B) Для исходящих вызовов for the first 2mins, the cost is fixed at 500 units
. за последующие секунды стоимость составляет 2 units per second
.
Пример, если исходящая длительность равна 5 минутам, тогда стоимость равна 500 units + 2*3*60 units = 860 units
Ниже приведены таблицы:
customer table with columns id, name, phone
history table with columns id, incoming_phone, outgoing_phone, duration, dialed_on (YYYY-MM-DD)
Я предложил следующие условия для моих условий:
Для стоимости входящего звонка:
select c.name, c.phone, h.duration as cost
from customer c join history h on c.phone = h.incoming_phone
Когда я запустил вышеуказанный запрос, я не получил никаких синтаксических ошибок.
Для стоимости исходящего звонка:
select c.name, c.phone, CASE
WHEN h.duration > 120 THEN 500 + 2*(h.duration-120)
ELSE 2*(h.duration-120)
END; as cost
from customer c join history h on c.phone = h.outgoing_phone
Когда я запускаю вышеуказанный запрос, я получаю syntax error like "ERROR 1109 (42S02) at line 1: Unknown table 'c' in field list"
Я хочу объединить эти два запроса, получить общую стоимость и отобразить поля как имя, телефон, стоимость
Мне все еще нужно добавить условие для определенного месяца, чтобы ограничить данные за январь 2015 года, но застрял с подходом.