Ms-Access

使用“last”訪問查詢並顯示其餘部分

  • August 4, 2017

我有一個關於測量工具的 Access DB。

我有 2 個表:tblTools,其中包含設備的詳細資訊,tblCalibration包含校準每個設備的時間。

tblTools: tool_ID; tool_Name 
tblCalibration: calibration_ID; tool_ID ;calibration_Date

我寫了一個查詢來獲取最後的校準日期,但它只顯示具有校準日期的設備。我需要結果來顯示所有設備,而不僅僅是那些已經校準的設備。

是否有任何解決方案可以列出所有設備以及最後校準日期(如果存在)?

此查詢選擇每個工具的最後校準日期。

SELECT t.tool_Name
   ,(
       SELECT TOP 1 c.calibration_Date
       FROM tblCalibration c
       WHERE t.tool_ID = c.tool_ID
       ORDER BY c.calibration_Date DESC
       )
FROM tblTools t

如果您想查看必須使用 LEFT JOIN 的所有工具和校準事件:

SELECT t.tool_Name
   ,c.calibration_Date
FROM tblTools t
LEFT JOIN tblCalibration c ON t.tool_ID = c.tool_ID
ORDER BY t.tool_Name, c.calibration_Date DESC --ORDER BY is optional

第一個查詢返回所有工具和該工具最後一次校準的日期。如果您有 100 個工具,您將獲得 100 條記錄,無論您對每個工具校準多少次。第二個查詢將返回所有工具和所有校準事件。它返回工具的所有校準而不是最後一個校準。

引用自:https://dba.stackexchange.com/questions/95458