You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Access查询:匹配双外键,获取最新时间记录的TxType字段

Access查询获取指定modID+relID组合下最新DateTime记录的TxType

问题分析

你当前的SQL存在两个关键问题导致结果错误:

  1. 字段名笔误:GROUP BY子句中的Logs.dmID是错误字段名,表中实际字段为modID,这会导致分组逻辑错误。
  2. Last()函数逻辑不符需求:Access的Last()函数返回的是表中物理存储顺序的最后一条记录值,并非按DateTime排序后的最新记录值,因此它和Max(DateTime)对应的记录没有关联,自然无法得到正确的TxType。

正确写法

以下两种方式都能满足你的需求,可根据实际场景选择:

方式1:子查询匹配最大DateTime

先通过子查询获取指定modID和relID组合下的最新DateTime,再关联原表找到对应记录的TxType:

SELECT Logs.TxType
FROM Logs
WHERE Logs.modID = [EntermodID] 
  AND Logs.relID = [EnterrelID]
  AND Logs.DateTime = (
    SELECT Max(DateTime)
    FROM Logs
    WHERE modID = [EntermodID] 
      AND relID = [EnterrelID]
  );

方式2:TOP 1结合倒序排序

直接按DateTime倒序排列,取第一条记录的TxType(适用于DateTime唯一的场景,若存在多条相同最新DateTime的记录,会返回其中一条):

SELECT TOP 1 Logs.TxType
FROM Logs
WHERE Logs.modID = [EntermodID] 
  AND Logs.relID = [EnterrelID]
ORDER BY Logs.DateTime DESC;

补充说明

  • 若存在多条记录共享同一最新DateTime的情况,方式1会返回所有符合条件的TxType;方式2仅返回第一条(物理顺序),可根据业务需求调整。
  • 确保参数[EntermodID]和[EnterrelID]的输入类型与表中字段类型一致,避免类型不匹配导致的查询错误。

内容的提问来源于stack exchange,提问作者Apethae

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 14:45:41