В сценарии телефонной системы у меня есть 2 таблицы.Строки MYSQL UPDATE, соответствующие условию на основе переменных
- таблица1 состоит из:
customer_id
,call_duration
,calldate
,skip_billing
. - таблица2 составлена:
customer_id
,bonus_seconds
.
В таблице 1 хранятся все призывы для всех клиентов, а таблица2 хранит бонусные_секунды, которые представляют свободное время разговора для определенного клиента (то есть: для клиента 1 ПЕРВЫЕ 40 кумулятивных секунд бесплатны).
Мне нужно написать запрос для обновления таблицы1 в соответствии с приведенным ниже условием: установить skip_billing в пределах вызовов, которые определены бесплатно в таблице2.
Так что сначала мне нужно сгруппировать по customer_id, а затем перебрать вызовы, увеличив кумулятивную переменную (cumsec) над call_duration и соответственно установить skip_billing.
table1 пример:
|customer_id |billsec | skipbill|
|1 |12 | 0 |
|1 |10 | 0 |
|1 |15 | 0 |
|1 |8 | 0 | <--need to set 1 due to cumsec=45 for customer_id=1
|2 |12 | 0 | <--nop
|3 |12 | 0 | <--nop
|2 |12 | 0 | <--need to set 1 due to cumsec=24 for customer_id=2
|1 |12 | 0 | <--need to set 1 ....
|3 |15 | 0 | <--need to set 1 due to cumsec=27 for customer_id=3
|customer_id |bonus_seconds|
|1 |40 |
|2 |20 |
|3 |15 |
Как я могу написать запрос или процедуру в SQL для достижения такого поведения? Спасибо большое
Пожалуйста, скопируйте/вывесить ошибку вы получили в свой вопрос –