假设我有一个名为 tbl_med 的表,它有六个字段:[nom_lab]、[nom_desc]、[nom_apres]、[date_vig]、[cod_med]、[vr_pmc]。
我想要一个 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
上面水平规则线之间的三个条件是必要的?
有没有人有更直观的查询更容易理解?