Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.08.2008, 13:07   #1
Tanusha
Пользователь
 
Регистрация: 18.07.2008
Сообщений: 21
По умолчанию Создание запроса по дублирующимся звонкам

Привет всем! Есть вопрос: как выбрать одинаковые звонки из таблицы?
Есть таблица calls, в ней поля: id звонка, его продолжительность (duration_sec), datetime_call, call_num(откуда звонили), call_num_in (куда звонили). в таблице есть одинаковые звонки, т.е. получается будто бы абонент звонил одновременно в одно и тоже место (вешеуказанные поля одинаковые, кроме id).
есть запрос, который выбирает у абонента звонки за два дня
SELECT id, datetime_call, duration_sec, call_num, call_num_in
FROM calls where phone_id = '00240' and datetime_call between '20080710' and '20080711'
а нужно чтобы запрос выбирал всех абонентов, чьи datetime_call, duration_sec, call_num, call_num_in совпадают и удалить одного их них...
как это реализовать по средствам sql?
Подсткажите пжл.
Написала запрос:
select * from calls c1
where c1.phone_id = '00240'
and
c1.datetime_call between '20080701' and '20080731'
and
NOT EXIST select datetime_call, duration_sec, call_num, call_num_in
FROM calls c2
where c1.datetime_call = c2.datetime_call and c1.duration_sec = c2.duration_sec and c1.call_num = c2.call_num and c1.call_num_in = c2.call_num_in
пишет ошибку Incorrect syntax near the keyword 'select'. в конструкции что то не так подскажите гдк ошибка?

Последний раз редактировалось Tanusha; 09.08.2008 в 13:39.
Tanusha вне форума Ответить с цитированием
Старый 10.08.2008, 17:03   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Танюша, если не ошибаюсь, то у Вас данные хранятся в СУБД Paradox ? Попробовал я сейчас сделать то, что Вы пытаетесь.. и вынужден отметить - "какая гадость!... Какая гадость этот ваш парадокс"..... ;-((((
Там же ничего нет - шаг вправо, шаг влево - то вложенные запросы не поддерживаются, то ещё что-то...

повторящиеся записи можно найти запросом вида
Код:
select c1.datetime_call, c1.duration_sec, c1.call_num, c1.call_num_in 
from calls c1 
where 
  c1.phone_id = '00240'
  and
  c1.datetime_call between '20080701' and '20080731'
group by c1.datetime_call, c1.duration_sec, c1.call_num, c1.call_num_in having count(*)>1
Но вот выделить эти повторяющиеся записи из таблицы у меня не вышло...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.08.2008, 09:45   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию файл помощи по BDE SQL

Обычно, там, где установлено BDE (Borland Database Engine) имеется файл помощи по поддерживаемым запросам манипуляции с данными - LOCALSQL.HLP
прилагаю его.
может поможет...
Вложения
Тип файла: rar LocalSQL.rar (65.1 Кб, 13 просмотров)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.08.2008, 10:08   #4
Tanusha
Пользователь
 
Регистрация: 18.07.2008
Сообщений: 21
По умолчанию

спасибо за помощь, я счас работаю с MS SQL сервером, задача разрешилась...аналогичным твоему запросу я сделала выборку одинаковых звонков, потом создала таблицу, в нее перекинула id одинаковых звонков, и запросом удалила из таблицы calls все id , которые нах-сь в таблице call_test...
Tanusha вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
результат запроса Ko$tello БД в Delphi 7 18.04.2012 12:13
Формирование запроса BlackOmen JavaScript, Ajax 6 15.06.2008 12:37
1С: debug SQL-запроса. crazy horse SQL, базы данных 0 05.06.2008 08:19
Создание запроса, выборка из 4 таблиц! help! angelkisss SQL, базы данных 3 03.02.2008 15:03