|
|
|
| Помогите
Имеется таблица с дубликатами
Surname DR STATUS_01 Street House Korp Apt SN_POL C_KAT1 C_KAT2 C_KAT_Fixed Date_Start Date_End Map Id_Svaz Date_Start_New
Арам 1929/04/07 ПН - - - - 020019 082 096 096 2004/09/27 2093/01/01 3461 Арам1929/04/07 2004/09/27
Арам 1929/04/07 ПН - - - - 020019 082 096 096 2004/09/27 2093/01/01 3462 Арам1929/04/07 2004/09/27
Арам 1929/04/07 ПН - - - - 020019 082 096 082 1989/07/06 2093/01/01 3461 Арам1929/04/07 1989/07/06
Арам 1929/04/07 ПН - - - - 020019 082 096 082 1989/07/06 2093/01/01 3462 Арам1929/04/07 1989/07/06
БРАМ 1922/12/14 ПН Рытикова 3 - 31 200396 011 000 082 1987/11/12 2093/01/01 232 БРАМ1922/12/14 1987/11/12
БРАМ 1922/12/14 ПН Рытикова 3 - 31 200396 011 000 011 1989/11/12 2093/01/01 232 БРАМ1922/12/14 1989/11/12
БРАМ 1922/12/14 ПН Рытикова 3 - 31 200396 011 000 020 1996/12/19 2093/01/01 232 БРАМ1922/12/14 1996/12/19
Рамо 1929/02/12 ПН Либкнехта 15 - 11 963 Рамо1929/02/12
ФРАМ 1942/02/10 ПН Большая 32 - - 200296 082 000 082 1999/01/05 2093/01/01 1973 ФРАМ1942/02/10 1999/01/05
Как выбрать из группы дубликатов записи по столбцу Date_Start с самой ранней датой и перенести данные в другую таблицу:
Surname DR STATUS_01 Street House Korp Apt SN_POL C_KAT1 C_KAT2 C_KAT_Fixed Date_Start Date_End Map Id_Svaz
Арам 1929/04/07 ПН - - - - 020019 082 096 096 2004/09/27 2093/01/01 3461 Арам1929/04/07
Арам 1929/04/07 ПН - - - - 020019 082 096 096 2004/09/27 2093/01/01 3462 Арам1929/04/07
БРАМ 1922/12/14 ПН Рытикова 3 - 31 200396 011 000 020 1996/12/19 2093/01/01 232 БРАМ1922/12/14
Рамо 1929/02/12 ПН Либкнехта 15 - 11 963 Рамо1929/02/12
ФРАМ 1942/02/10 ПН Большая 32 - - 200296 082 000 082 1999/01/05 2093/01/01 1973 ФРАМ1942/02/10
Столбец Map - числовой, Date_Start_New - дата, остальные текстовые; Id_Svaz предназначен для связи всех таблиц (ключевой столбец)
Заранее благодарен за любую помощь | |
|
| |
|
|
|
| Постройте мастером запрос "повторяющиеся записи" (то ли "поиск повторов")
посмотрите как он устроен
добавьте группировку для даты min() | |
|
| |
|
|
|
| Выкладываю сообщения по воскресеньям | |
|
| |
|
|
|
| Сожалею, группировка для даты min() не работает, прбовал самообъединение, не работает, запрос (сокращенный)
SELECT Max(Union.Date_Start_New) AS mx_Date_Start_New, Union.Id_Svaz, Union.DR, Union.STATUS_01
FROM Union
GROUP BY Union.Id_Svaz, Union.DR, Union.STATUS_01;
выдает только дубликаты (единичные записи не выводит) и чем больше интересующих параметров
вводишь в группировку, тем меньше записей получаешь.
К примеру, оригинал содержит 43 записи (тест), 37 дубликатов (2...4 дубликата в группе), запрос возвращает 23 записи без первоначальных единичных записей (меньше дубликатов, но встречаются), а нужны первоначальные единичные записи и эти 23 записи.
Можно конечно, создать новую таблицу, перенести в нее данные запрса, перенести запросом неповторяющиеся записи из первой таблицы.
База и без этого не маленькая (3 таблицы в среднем по миллиону записей плюс десяток мелких таблиц) плюс к этому ежегодное приращение основных таблиц по нескольку сотен тысяч записей
(ожидаемый технический предел три миллиона записей (приход равен уходу)).
Есть ли у Вас мысли по этому поводу?
Заранее благодарю всех откликнувшихся на просьбу о помощи. | |
|
| |
|
|
|
|
| Спасибо за решение, Ваши замечания учту
С уважением, Сергей | |
|
| |
|
|
|
| К сожалению финальная таблица содержит только дубликаты
Необходимо кроме дубликатов и единичные записи
Видимо решений нет
Всем спасибо за оказанную помощь | |
|
| |
|
|
|
| Решение настолько простое.....
1. Сделай запрос как тебе написал Osmor
2. Сделай запрос для поиска единичных записей неизвестно, что ты под этим подразумеваешь
3. Сделай Union Select для обоих запросов
P. S. Упрости свой запрос и все получится | |
|
| |
|