Supposons que j'ai une table nommée tbl_med, qui a six champs: [nom_lab], [nom_desc], [nom_apres], [date_vig], [cod_med], [vr_pmc ]Je voudrais comprendre une requête générée par un assistant Microsoft Access
Je veux une requête SQL MS Access qui:
- Trouver des documents dupliqués par rapport à quatre des champs: [nom_lab], [nom_desc], [nom_apres], [date_vig].
- Afficher tous les six champs (pas seulement ceux utilisés pour vérifier les doublons).
J'ai utilisé le MS Access "Trouver Doublons Assistant Requête", ce qui m'a donné l'instruction SQL suivante:
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];
Quelqu'un pourrait-il expliquer pourquoi les trois And
conditions entre les lignes de règles horizontales ci-dessus sont nécessaires?
Est-ce que quelqu'un a une requête plus intuitive qui serait plus facile à comprendre?
Ils sont nécessaires parce que la requête doit se référer à une version de somme de lui-même afin de déterminer si le nombre de chaque enregistrement est supérieur à 1, donc est un doublon. Je recommanderais de rester avec l'assistant pour les Queires de ce type. –