Предположим, у меня есть таблица с именем tbl_med, которая имеет шесть полей: [nom_lab], [nom_desc], [nom_apres], [date_vig], [cod_med], [vr_pmc ].Я хотел бы понять запрос, созданный с помощью Microsoft Access
Я хочу, чтобы запрос MS Access SQL, которая будет:
- Найти дублирующиеся записи в отношении четырех полей: [nom_lab], [nom_desc], [nom_apres], [date_vig].
- Показать все шесть полей (а не только те, которые используются для проверки дубликатов).
Я использовал MS Access "Найти Мастера запросов Дубликаты", который дал мне следующий SQL:
SELECT tbl_med.[nom_lab], tbl_med.[nom_desc], tbl_med.[nom_apres], tbl_med.[date_vig], tbl_med.[cod_med], tbl_med.[vr_pmc]
FROM tbl_med
WHERE tbl_med.[nom_lab]
IN
(
SELECT [nom_lab]
FROM [tbl_med] As Tmp
GROUP BY [nom_lab], [nom_desc], [nom_apres],[date_vig]
HAVING Count(*)>1
And [nom_desc] = [tbl_med].[nom_desc]
And [nom_apres] = [tbl_med].[nom_apres]
And [date_vig] = [tbl_med].[date_vig]
)
ORDER BY tbl_med.[nom_lab], tbl_med.[nom_desc], tbl_med.[nom_apres], tbl_med.[date_vig];
Может кто-нибудь объяснить, почему три And
Необходимы условия между горизонтальными линиями правил выше?
У кого-нибудь есть более интуитивный запрос, который было бы легче понять?
Они необходимы, потому что запрос должен ссылаться на собственную версию суммы, чтобы определить, превышает ли счет каждой записи 1, следовательно, является дубликатом. Я бы порекомендовал придерживаться мастера для стран такого типа. –