2014-05-21 27 views
1

需要使用最新維護日期(lm01_s)和status_code的「所有」文檔編號(k002)列表。下面的代碼將查找整個表格的最後日期以及該日期的任何記錄。這不是我需要的。只有一張桌子。如果我從等式中刪除status_code,這很容易。Access 2010通過SQL查找最新狀態

SELECT k002, lm01_s, status_code 
FROM stat_trans 
WHERE (lm01_s = ANY (SELECT MAX(lm01_s) FROM stat_trans)) ORDER BY lm01_s; 

我也試過這個...

SELECT k002, lm01_s, advice_code 
FROM romis_stat_trans 
WHERE lm01_s IN (((SELECT Max(lm01_s) FROM romis_stat_trans GROUP BY k002))); 

我已經嘗試了這麼多東西,我忘了我都試過了。一切都是死路一條。

回答

1

使用where子句中的子查詢僅返回lm01_s等於max lm01_s的記錄。我發現使用表別名很重要,否則Access會混淆字段。

select k002, 
     lm01_s, 
     status_code 
from stat_trans 
where lm01_s=(select max(sc.lm01_s) 
       from stat_trans as sc 
       where sc.k002 = stat_trans.k002) 
+0

這是個竅門。謝謝!我將在不久的將來使用這個別名。 – Kaw4Life