2013-10-28 3 views
0

У меня есть разные поля в таблице, какКак избежать Перекрытия вызовов в CDR,

 
Caller_id 
Called_number 
Date 
time 
Minutes 
Charges 

при извлечении счетов для клиентов, есть дублирование вызовов, я был бы признателен, если вы направить меня для SQL скрипта, как чтобы избежать перекрытия вызовов.

например. На одном Caller_id одновременно отображаются два вызова, в то время как это невозможно.

 
CallerId Called_number Date   Time   Minutes Charges 
5555555555 42555777777 9/12/2013 17:15:46 44  44 
5555555555 5556666666 9/12/2013 17:21:28 5  9.25 

Заранее спасибо

+4

Actua Это возможно. Я видел это много раз в CDR. Некоторые пользователи инициируют трехстороннюю конференц-связь наполовину через вызов. Кроме того, на некоторых системах входящие вызовы могут взиматься с клиента. Я видел сценарии, в которых клиент находится по телефону, и во время этого вызова получает входящую платную виртуальную машину. Я ценю, что вы ищете какой-то скрипт для этого, но я думаю, что важно найти корень проблемы здесь - иначе, что вы собираетесь делать - игнорировать вторую (или третью или четвертую) плату? – SimonGoldstone

ответ

1

как @SimonGoldstone сказал CDRs перекрываться может произойти от многих причин:

  • Данные собираются несколькими серверами без NTP.
  • Каждый сервер использует разный часовой пояс.
  • Конференцсвязь

, если вы хотите, чтобы извлечь содержащиеся вызовы, которые можно использовать следующий код:

create table t (
Caller_id bigint, 
Called_number bigint, 
call_date datetime, 
duration float, 
charge float); 
insert into t 
values 
(5555555555, 42555777777, '2013-12-09 17:15:46', 44, 44), 
(5555555555, 5556666666, '2013-12-09 17:21:28', 5,9.25); 

select t.* 

from t join (select caller_id, called_number, call_date as start_date, 
     date_add(call_date,INTERVAL duration minute) as end_date from t) t1 on (t.caller_id = t1.caller_id and t.call_date between t1.start_date and t1.end_date) where t.called_number != t1.called_number 

вы также можете посмотреть на это сообщение: Overlapping Date Ranges - Identifying Only the Overlap

Смежные вопросы