전화 시스템 시나리오에서 나는 2 개의 테이블을 가지고 있습니다. customer_id
, call_duration
, calldate
, skip_billing
:변수 기반의 조건에서 일치하는 MYSQL UPDATE 행
- 표 1은로 구성된다.
- table2는
customer_id
,bonus_seconds
으로 구성됩니다.
table1은 모든 고객에 대한 모든 호출을 저장하고 table2는 정의 된 고객에게 허용 된 자유 대화 시간을 나타내는 bonus_seconds를 저장합니다. 즉 고객 1의 경우 FIRST 40 누적 초는 무료입니다.
아래와 같이 조건에 따라 table1을 업데이트하라는 쿼리를 작성해야합니다. table2에서 정의 된 호출 내에서 skip_billing을 설정하십시오.
그래서 먼저 customer_id로 그룹화 한 다음 call_duration에 누적 변수 (cumsec)를 증가시키고 그에 따라 skip_billing을 설정해야합니다.
표 예는 다음과 같습니다
|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의 쿼리 나 프로 시저를 작성 할 수 있습니까? 당신에게
가 기본 키로 귀하의 질문에 –