Я пытаюсь использовать SQL-запрос в Access, но он не работает. Зачем?Как найти дубликаты в таблице с помощью Access SQL?
SELECT * FROM table
EXCEPT
SELECT DISTINCT name FROM table;
У меня есть синтаксическая ошибка в инструкции FROM.
Я пытаюсь использовать SQL-запрос в Access, но он не работает. Зачем?Как найти дубликаты в таблице с помощью Access SQL?
SELECT * FROM table
EXCEPT
SELECT DISTINCT name FROM table;
У меня есть синтаксическая ошибка в инструкции FROM.
использование HAVING COUNT (имя)> 1 пункт
SELECT * FROM Table1
WHERE [name] IN
(SELECT name, Count(name)
FROM Table1
GROUP BY name
HAVING COUNT(name)>1)
MS Access не поддерживает ключевое слово EXCEPT. Вы можете попробовать использовать LEFT JOIN, как это:
select t1.* from table t1 left join table t2 on t1.name = t2.name
EDIT:
Если вы хотите найти дубликаты в таблице, то вы можете попробовать это:
SELECT name, COUNT(*)
FROM table
GROUP BY name
HAVING COUNT(*) > 1
Вы можете также см.: Create a Query in Microsoft Access to Find Duplicate Entries in a Table и следуйте инструкциям, чтобы найти дубликаты в таблице.
Сначала откройте MDB (база данных Microsoft), содержащую таблицу, которую вы хотите, , чтобы проверить наличие дубликатов. Перейдите на вкладку «Запросы» и «Создать».
Откроется диалоговое окно Новый запрос. Выделите Find Duplicates Мастер запросов и нажмите OK.
Теперь выделите таблицу, которую необходимо проверить на наличие дубликатов данных. Вы можете также выбрать «Запросы» или обе таблицы и запросы. Я никогда не видел использование для поиска запросов ... но, возможно, это было бы полезно для ситуации . После выделения соответствующей таблицы нажмите «Далее».
Здесь мы выберем поле или поля внутри таблицы мы хотим проверки для дублирования данных. Старайтесь избегать обобщенных полей.
Введите имя запроса и нажмите Готово. Результат будет запущен сразу и появится сообщение . Также запрос сохраняется в разделе «Запросы»: Доступ.
В зависимости от выбранных таблиц и полей ваши результаты будут выглядеть нечто похожее на выстрелы ниже, которые показывают, у меня нет ничего дублируется в первом выстреле и результаты дублей в другой.
Вы можете использовать LEFT JOIN или EXISTS
LEFT JOIN
SELECT DISTINCT t1.NAME FROM table1 as t1
LEFT JOIN table2 as t2 on t1.name=t2.name
WHERE t2.name is null
;
НЕ ВЫХОДИТ
SELECT T1.NAME FROM table1 as t1 where not exists
(SELECT T2.NAME FROM table2 as t2 where t1.name=t2.name)
У меня есть только одна таблица. Эти запросы показывают пустую таблицу. Так что это не то же самое, что я спросил. – maro
ли доступ поддерживает except
или нет. Другое дело, что вы не используете его должным образом. У вас есть select *
над словом except
и select name
ниже. Это недопустимо sql. Если вы пробовали, что в SQL Server, ваше сообщение об ошибке будет All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists.
Итак, как я могу выбрать все записи из таблицы, где имена не уникальны? – maro
ли доступ действительно поддерживают КРОМЕ? – jarlh
Я не уверен, что Access поддерживает ключевое слово EXCEPT. – Harsh
не работает? ... – Ali786