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

如何在MS Access中通过精确匹配+范围匹配连接两张表?

MS Access 多条件关联查询实现

需要关联Results_Table与Limits_Table,同时满足以下两个匹配条件,获取对应Limit值:

  • Info、Entity字段精确匹配
  • Results_Table.RefDate处于Limits_Table.From_Date与Limits_Table.To_Date的日期范围内

Limits_Table 数据

InfoEntityFrom_DateTo_DateLimit
M1PARENT31/03/202301/01/2050384%
M1PARENT28/02/202231/03/2023350%
M1PARENT28/02/202127/02/2022275%
M1PARENT01/01/202004/03/2021235%
M1PARENT01/12/201931/12/2019209%
M2CHILD21/10/202001/01/2050115%
M2CHILD01/12/201920/10/2020140%
M2PARENT21/10/202201/01/2050135%
M2PARENT01/12/201921/10/2022140%
M2PARENT05/02/201930/11/2019138%

Results_Table 数据

InfoEntityRefDateValue
M2PARENT31/07/2023168.9%
M2CHILD31/07/2023482.01%
M1PARENT31/07/2023278.53%
M1CHILD31/07/2023482.01%
M2PARENT10/06/2023164.35%
M2CHILD10/06/2023150.17%
M1PARENT10/06/2023344.79%
M1CHILD10/06/2023213.94%

期望查询输出(Query_Output)

InfoEntityRefDateValueLimit
M2PARENT31/07/2023168.9%135%
M2CHILD31/07/2023482.01%115%
M1PARENT31/07/2023278.53%384%
M1CHILD31/07/2023482.01%
M2PARENT10/06/2023164.35%140%
M2CHILD10/06/2023150.17%115%
M1PARENT10/06/2023344.79%350%
M1CHILD10/06/2023213.94%

实现SQL语句

使用**左连接(LEFT JOIN)**确保Results_Table的所有记录都被保留,即使没有匹配的Limit值:

SELECT 
    R.Info,
    R.Entity,
    R.RefDate,
    R.Value,
    L.Limit
FROM 
    Results_Table AS R
LEFT JOIN 
    Limits_Table AS L ON 
        R.Info = L.Info 
        AND R.Entity = L.Entity 
        AND R.RefDate BETWEEN L.From_Date AND L.To_Date;

关键说明

  1. LEFT JOIN:保证Results_Table中所有行都会出现在结果中,无匹配时Limit字段显示为空
  2. 多条件关联:同时满足Info、Entity精确匹配,以及日期区间判断
  3. 日期比较:使用BETWEEN简化日期范围判断,需确保所有日期字段在Access中为日期/时间类型;若存储为文本,需先通过CDate()函数转换为日期格式再进行比较

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 22:25:08