powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / удаление повторяющихся строки
3 сообщений из 3, страница 1 из 1
удаление повторяющихся строки
    #39165790
minioracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток.
есть таблица в не данные:

col1-col2-col3---col4
42--- S--- 57--- 30.01.2016 10:54:41
43--- S--- 60--- 30.01.2016 10:51:51
44--- S--- 65--- 30.01.2016 10:47:11
45--- S--- 68--- 30.01.2016 10:48:21
46--- S--- 72--- 30.01.2016 10:48:45
47--- S--- 75--- 30.01.2016 10:50:27
48--- S--- 78--- 30.01.2016 10:51:19
49--- S--- 83--- 30.01.2016 10:53:04
... ... ... .....
66--- S--- 72--- 30.01.2016 11:08:45
67--- S--- 65--- 30.01.2016 11:47:11
68--- S--- 68--- 30.01.2016 11:48:21
... ... ... .....
77--- S--- 91--- 31.01.2016 11:50:27
78--- S--- 92--- 31.01.2016 11:51:19
79--- S--- 93--- 31.01.2016 11:53:04
... ... ... .....

вот нужен sql запрос который позволит удалить 66,67,68 строчку, т.е. дублирующиеся, оставить только уникальные? В итоге должно быть:
col1-col2-col3---col4
42--- S--- 57--- 30.01.2016 10:54:41
43--- S--- 60--- 30.01.2016 10:51:51
44--- S--- 65--- 30.01.2016 10:47:11
45--- S--- 68--- 30.01.2016 10:48:21
46--- S--- 72--- 30.01.2016 10:48:45
47--- S--- 75--- 30.01.2016 10:50:27
48--- S--- 78--- 30.01.2016 10:51:19
49--- S--- 83--- 30.01.2016 10:53:04
Помогите реализовать такой Sql запрос.
Делаю такой запрос
Код: sql
1.
DELETE a.* FROM tab1 a, (SELECT b.namess, b.dat, MIN(b.id) mid FROM tab1 b GROUP BY  b.namess, b.dat) c WHERE a.namess = c.namess AND a.dat=c.dat AND a.id>c.mid 


Выдает ошибку
Дополнительные сведения: Syntax error (missing operator) in query expression 'MIN(b.id) mid'.

Помогите разобраться Плиз!
...
Рейтинг: 0 / 0
удаление повторяющихся строки
    #39165825
minioracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
minioracle,

нашел ошибку в запросе
Код: sql
1.
DELETE a.* FROM tab1 a, (SELECT b.namess, b.dat, min(b.id) as mid FROM tab1 b GROUP BY  b.namess, b.dat) c WHERE a.namess = c.namess AND a.dat=c.dat AND a.id>c.mid


Но теперь при выполнении выдает сообщение:
Дополнительные сведения: Could not delete from specified tables.
...
Рейтинг: 0 / 0
удаление повторяющихся строки
    #39165836
minioracleДоброе время суток.
есть таблица в не данные:

col1-col2-col3---col4
42--- S--- 57--- 30.01.2016 10:54:41
43--- S--- 60--- 30.01.2016 10:51:51
44--- S--- 65--- 30.01.2016 10:47:11
45--- S--- 68--- 30.01.2016 10:48:21
46--- S--- 72--- 30.01.2016 10:48:45
47--- S--- 75--- 30.01.2016 10:50:27
48--- S--- 78--- 30.01.2016 10:51:19
49--- S--- 83--- 30.01.2016 10:53:04
... ... ... .....
66--- S--- 72--- 30.01.2016 11:08:45
67--- S--- 65--- 30.01.2016 11:47:11
68--- S--- 68--- 30.01.2016 11:48:21
... ... ... .....
77--- S--- 91--- 31.01.2016 11:50:27
78--- S--- 92--- 31.01.2016 11:51:19
79--- S--- 93--- 31.01.2016 11:53:04
... ... ... .....

вот нужен sql запрос который позволит удалить 66,67,68 строчку, т.е. дублирующиеся, оставить только уникальные? В итоге должно быть:
col1-col2-col3---col4
42--- S--- 57--- 30.01.2016 10:54:41
43--- S--- 60--- 30.01.2016 10:51:51
44--- S--- 65--- 30.01.2016 10:47:11
45--- S--- 68--- 30.01.2016 10:48:21
46--- S--- 72--- 30.01.2016 10:48:45
47--- S--- 75--- 30.01.2016 10:50:27
48--- S--- 78--- 30.01.2016 10:51:19
49--- S--- 83--- 30.01.2016 10:53:04
Помогите реализовать такой Sql запрос.
Делаю такой запрос
Код: sql
1.
DELETE a.* FROM tab1 a, (SELECT b.namess, b.dat, MIN(b.id) mid FROM tab1 b GROUP BY  b.namess, b.dat) c WHERE a.namess = c.namess AND a.dat=c.dat AND a.id>c.mid 


Выдает ошибку
Дополнительные сведения: Syntax error (missing operator) in query expression 'MIN(b.id) mid'.

Помогите разобраться Плиз!
Syntax error состоит в том, что вы используете имя функции Mid в качестве псевдонима поля.
(кстати, объявление псевдонима поля без AS - это тоже ошибка)

Кроме того, тут налицо логическое несоответствие между назначением записей 66,67,68 повторяющимися
и использованным группирующим выражением - группировка b.dat НЕ даст вам повторений, ибо с учетом времени там все значения уникальные.

И наконец, даже если вы все это исправите данный запрос не будет обновляемым,
и удалить из него не получится. Вашу задачу можно решить удалением вида
Код: vbnet
1.
2.
DELETE * FROM tab1 WHERE id NOT IN
(SELECT MIN(id) FROM tab1 GROUP BY namess, Format(dat,'yyyymmdd'))
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / удаление повторяющихся строки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]