有限制的不匹配查询



我有一个数据库,它为每个事务使用一个唯一的ID。交易ID是一年中的最后两位数字,后面跟着一个四位数的序列号(例如0100到9999)。这个数字在每年年初重新设置回0100。并非每年都使用所有数字。例如,2012年的最后一笔交易是12-0409,2011年是11-0500。这些数字当前不是在数据库中生成的,而是手动创建的。我正在让他们改用自动化,但与此同时,我必须创建补丁来修复错误。

在数据库中,我有一个表和一个查询。查询([Offer Check])列出了交易ID([HL#]),并以两种格式显示最后四个,一种是数字格式([NumList]),另一种是文本格式([TextList])。该表是一个基本表,列出了0100和9999之间的所有数字。我正在尝试创建一个查询,使我能够识别缺少哪些交易ID,即我有13-0250和13-0252,但没有13-0251。我可以创建一个查询来识别丢失的号码,但它也列出了超过最新交易ID的所有号码。如何将查询限制在当前最大交易ID#?

这就是我到目前为止所拥有的。

SELECT YearlyOfferIds.YOID
FROM
    YearlyOfferIds
    LEFT JOIN [Offer Check]
    ON YearlyOfferIds.[YOID] = [Offer Check].[TextList]
WHERE ((([Offer Check].TextList) Is Null));

我正在尝试添加或做同样的事情。

SELECT Max([Offer Check].NumList) AS MaxOfNumList
FROM [Offer Check];

您的第二个查询SELECT Max(...可以转换为DMax表达式。

DMax("NumList", "Offer Check")

我的直觉是,您可以在第一个查询的WHERE子句中使用DMax来限制从YearlyOfferIds返回的行。不幸的是,我不知道您要与最大[Offer Check].NumList进行比较的YearlyOfferIds字段的名称。所以我将该字段称为some_field。

WHERE
        YearlyOfferIds.some_field <= DMax("NumList", "Offer Check")
    AND [Offer Check].TextList Is Null

最新更新