2015-11-05 69 views
0

我開發了一個數據庫,用後面的架構訪問:最後一個歷史記錄表的條目與MS-訪問

第一個表:

  1. 標識符
  2. 序列號
  3. 修訂(是/沒有)

而第二個表,通過它們的標識符鏈接到第一個表,它被用作歷史Y,保持與他的負責一些事件:

  1. 標識符
  2. 日期事件
  3. 負責事件
  4. 事件描述

所以,我試圖做一個SQL查詢帶來我通過這種方式在歷史記錄表中確定的標識符的最後一個事件:

SELECT M.ID, M.SN, Last(H.Date) AS MaxDate, Last(H.Responsible) AS LastResponsible, 
Last(H.Description) AS LastDescription 
FROM TABLE1 AS M INNER JOIN History AS H ON M.ID=H.ID 
WHERE M.Disponible=No 
GROUP BY M.ID, M.SN; 

但它有時會給我帶來歷史上不是最後的價值觀,爲什麼可能是這個原因呢?

+1

你試過用MAX代替LAST嗎? –

+0

謝謝!有用! –

回答

1

您需要先將History組合起來才能找到最大條目。對此進行子查詢,然後使用TABLE1加入子查詢。

看到這個問題的一個很好的例子:
Is it better/more efficient to use sub queries or SELECT statements within the WHERE clause (in MS Access)
(你想要的「合併爲一個單一的查詢」變種)。

如果您無法正常工作,請添加評論。

+0

感謝您的回答@ Andre451,我首先嚐試了Darren Bartrup-Cook的建議,它適用於我,但我稍後會閱讀這個問題! :) –

相關問題