2017-07-25 112 views
1

我想在Access中創建一個查詢,根據另一個表中的值的存在挑出表中的行。我正在查看包含不同ID號的狀態的表,並檢查ID是否處於狀態較低的狀態。查詢表基於另一個表的結果

例如,每個ID從學徒到熟練掌握。如果狀態ID在狀態表中指出,那麼在事件表中應該有一個關於該ID在學徒和主人身上的記錄。

查詢應該返回狀態表中處於主狀態但尚未根據「事件」表中的條目正確處理狀態的ID。

使用下面的兩個表,查詢應該返回ID 2. ID 2列在Master上,但從未處於Journeyman狀態。

狀態表: ID Status 1 Master 2 Master 3 Apprentice 4 Journeyman

事件表: Date Status ID 7/25/17 Master 1 7/25/17 Master 2 7/24/17 Journeyman 1 7/24/17 Journeyman 3 7/20/17 Apprentice 4 7/20/17 Apprentice 3 7/20/17 Apprentice 2 7/20/17 Apprentice 1

我創建了一個查詢來尋找標記爲大師的ID。但我不知道該從哪裏去查看狀態表中標記爲Master的ID的事件表。

這是我的簡單查詢。這是我第一次真正使用Access,任何指針將不勝感激!

enter image description here

回答

0

如果沒有熟練的工人是唯一的事件標準,則考慮:

SELECT * FROM State WHERE Status="Master" AND NOT ID IN (SELECT ID FROM Events WHERE Status="Journeyman");

日期是一個保​​留字。不應該使用保留字作爲名稱。 EventDate會更好。

相關問題