Access 2010通过SQL查找最新状态

时间:2014-05-21 17:15:02

标签: sql ms-access

需要列出“ALL”凭证编号(k002)及其最新维护日期(lm01_s)和status_code。下面的代码查找整个表的最后日期以及该日期的任何记录。这不是我需要的。只有一张桌子。如果我从等式中删除status_code,这很容易。

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 个答案:

答案 0 :(得分: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)