powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Посик дублей
11 сообщений из 11, страница 1 из 1
Посик дублей
    #39826122
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В таблице vers есть поле codem, в котором попадаются одинаковые значения.
Поле соде - ключевое,счетчик.
Хочу найти все code, где codem повторяются хоть один раз.
Такой запрос виснет нафиг.... минут 10 работал - не сработал....
Что я делаю не так?

Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT vers.code
FROM vers
WHERE (((vers.codem) In (SELECT DISTINCT vers.codem
FROM vers
GROUP BY vers.codem
HAVING (((Count(vers.codem))>1))
ORDER BY vers.codem;)));
...
Рейтинг: 0 / 0
Посик дублей
    #39826130
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создайте запрос, который выбирает только vers.codem, встречающиеся более 1 раза. И сделайте это построителем - с SQL у Вас не очень...
Затем на основе таблицы и этого запроса, связав их по codem, выберите vers.code.
Потом, если захочется, можете вручную собрать в один запрос.
...
Рейтинг: 0 / 0
Посик дублей
    #39826141
Для начала, у вас DISTINCT и ";" в конце подчиненного запроса лишние. Возможно будет работать быстрее.
Можно вместо In применить EXISTS, например
Код: plsql
1.
2.
3.
SELECT code FROM vers As T1
WHERE EXISTS (SELECT * FROM vers As T2 WHERE T2.codem = T1.codem And T2.code <> T1.code)
ORDER BY codem;
...
Рейтинг: 0 / 0
Посик дублей
    #39826156
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чет всех прет на вложенные селекты...
...
Рейтинг: 0 / 0
Посик дублей
    #39826162
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaСоздайте запрос, который выбирает только vers.codem, встречающиеся более 1 раза. И сделайте это построителем - с SQL у Вас не очень...
При всем уважении, Akina, сегодня у Вас что-то со вниманием.....
вложенный запрос делает как раз то что вы написали выше, и делает отлично....(и в конструкторе сделан))

Код: sql
1.
2.
3.
4.
5.
SELECT DISTINCT vers.codem
FROM vers
GROUP BY vers.codem
HAVING (((Count(vers.codem))>1))
ORDER BY vers.codem;




AkinaЗатем на основе таблицы и этого запроса, связав их по codem, выберите vers.code.
Потом, если захочется, можете вручную собрать в один запрос.
А вот это действительно помогло. Спасибо
...
Рейтинг: 0 / 0
Посик дублей
    #39826163
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmagчет всех прет на вложенные селекты...
А это пожалуй еще лучше..... чеж я про это позабыл-то....
Спасибо дважды!
...
Рейтинг: 0 / 0
Посик дублей
    #39826165
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кривцов АнатолийДля начала, у вас DISTINCT и ";" в конце подчиненного запроса лишние. Возможно будет работать быстрее.
Можно вместо In применить EXISTS, например
Код: plsql
1.
2.
3.
SELECT code FROM vers As T1
WHERE EXISTS (SELECT * FROM vers As T2 WHERE T2.codem = T1.codem And T2.code <> T1.code)
ORDER BY codem;


Анатолий, спасибо!
Ваш вариант работает ИМХО быстрее всех!
...
Рейтинг: 0 / 0
Посик дублей
    #39826173
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serg197311При всем уважении, Akina, сегодня у Вас что-то со вниманием.....
вложенный запрос делает как раз то что вы написали выше, и делает отлично....(и в конструкторе сделан
))Вот и оставили бы его в виде отдельного запроса. Или Вы полагаете, что это МОЁ невнимание протащило в подзапрос точку с запятой, да ещё влепило туда нафиг ненужный, в принципе не имеющий смысла в подзапросе, ORDER BY, и, как следствие, получило в довесок не менее ненужный DISTINCT?
...
Рейтинг: 0 / 0
Посик дублей
    #39826185
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina, я полагаю что первая часть вашего ответа была совершенно бесполезной и неинформативной.
А за вторую я вас поблагодарил.
...
Рейтинг: 0 / 0
Посик дублей
    #39826273
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina ...да ещё влепило туда нафиг ненужный, в принципе не имеющий смысла в подзапросе, ORDER BY, и, как следствие, получило в довесок не менее ненужный DISTINCT? абсолютно в десяточку!
...
Рейтинг: 0 / 0
Посик дублей
    #39826275
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
SELECT DISTINCT T1.code
FROM vers AS T1 INNER JOIN vers AS T2 ON T2.codem = T1.codem
WHERE T2.code <> T1.code;
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Посик дублей
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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