我相信很多人已經問過這個問題,因爲我已經閱讀了這裏的所有主題。但問題是我有3個相關的表格,而不是2,我不知道如何編碼該代碼SQL Access 2007/2010選擇帶有不同ID的最大日期
我有一個表格:tbl_Instruments
,tbl_Record
和tbl_Cal_By
。 tbl_Instruments
擁有所有的樂器信息,包括他們的ID。 tbl_Cal_By
具有校準工具的人的信息。 tbl_Records
包含所有儀器記錄及其校準日期。它繼承tbl_Instruments
的ID爲Inst_ID和tbl_Cal_By
的名稱爲Name_ABBR。
tbl_Instruments:ID,類型
tbl_Cal_By:CAL_ID,Name_ABBR
tbl_Records:RECORD_ID,INST_ID,Cal_Date,Name_ABBR
這裏是我的代碼。
SELECT tbl_Records.Inst_ID
,tbl_Instruments.Type
,Max(tbl_Records.Cal_Date) AS MaxOfCal_Date
,tbl_Cal_By.Name_ABBR
FROM tbl_Cal_By
RIGHT JOIN (
tbl_Instruments INNER JOIN tbl_Records ON tbl_Instruments.ID = tbl_Records.Inst_ID
) ON tbl_Cal_By.ID = tbl_Records.BY
GROUP BY tbl_Records.Inst_ID
,tbl_Instruments.Type
,tbl_Cal_By.Name_ABBR;
期望的結果:
任何幫助將不勝感激!
This Works Perfectly!但是你介意從WHERE開始解釋最後一部分嗎?對不起,我有點新到SQL ~~ –
當然,如果你接受我的答案(V),我也會很感激。在那裏使用NOT EXISTS函數來檢查查詢之後的查詢是否返回。它將過濾返回某處的任何行。所以我做了什麼,是爲每個記錄,檢查是否有一個更大的日期那麼那個,如果是的話 - 它過濾它的結果。這將使我們只有最新的日期。 @JasonChan – Yossi
我知道這已經很長一段時間了,但最近我添加了tbl_Records.Path,並且老問題又回來了。所以要再次過濾它,我嘗試添加「AND t.Path = tbl_Records.Path」,但似乎這是錯誤的? –