Доступ мс, нужно получить все строки с отдельным столбцом

У меня есть таблица под названием «детали», в которой хранится информация об электрических разъемах, включая контакты, кожухи и т. д. все детали, являющиеся частью сборки, имеют значение в столбце с именем «assemblyID». Также есть столбец с именем «partDefID», в этом столбце соединители будут иметь значение 2, контакты — 3. Мне нужно получить строки для всех соединителей, которые имеют уникальный идентификатор сборки. Легко получить строки, представляющие соединители, просто выбрав строки с partDefID, равным 2, но это вернет несколько строк соединителей, которые могут быть частью одной и той же сборки. Мне нужны только те ряды соединителей с уникальным идентификатором сборки. Как я могу это сделать? см. изображение ниже: Доступ мс, нужно получить все строки с отдельным столбцом

то, что я пытаюсь получить, - это всего лишь ОДНА из строк, показанных ниже, любая из них подойдет, поскольку все они являются частью одной сборки. нужна только одна из этих строк

[обновлять] кажется, мой вопрос был неправильно сформулирован, и использование изображений не одобряется. Вставка текстовой версии моей таблицы выглядела ДЕЙСТВИТЕЛЬНО ужасно! Я постараюсь сделать лучше. да, я новичок как в sql, так и на этом сайте

Большинству людей здесь нужны образцы данных таблицы и ожидаемый результат в виде форматированного текста, а не изображений. Также; Упрощать! минимальный воспроизводимый пример

jarlh 11.12.2020 22:49

Для любой строки используйте TOP: ​​SELECT TOP 1 * FROM parts

Parfait 12.12.2020 02:24
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
2
139
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Я не знаю, если это то, что вы ищете

SELECT assemblyid,count(partdefid)
FROM parts
WHERE partdefid=2
GROUP BY partdefid,assemblyid
HAVING COUNT(partdefid)=1

Спасибо! однако вставка этого в окно запроса доступа дает следующую ошибку: «ваш запрос не включает указанное выражение« описание »как часть агрегатной функции»

Perry 59 12.12.2020 00:42

О, извините, я ошибся, я изменил ответ

ASP26 13.12.2020 18:15
Ответ принят как подходящий

Если вам нужна только одна строка «соединителя» для каждого идентификатора сборки, вы можете отфильтровать с помощью подзапроса. Предполагая, что PartRefID является уникальным ключом:

select *
from parts as p
where [PartRefID] = (
    select max(p1.[PartRefID])
    from parts as p1
    where p1.[AssemblyID] = p.[AssemblyID] and p1.[PartDefID] = 2
)

Другие вопросы по теме