假設我有一個名爲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,因此是重複的。我會建議堅持與這種類型的怪異嚮導。 –