具有限制的无与伦比的查询

时间:2013-07-17 23:24:33

标签: ms-access ms-access-2007

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

在数据库中,我有一个表和一个查询。查询([商品检查])列出交易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];

1 个答案:

答案 0 :(得分:2)

您的第二个查询SELECT Max(...可以翻译成DMax表达式。

DMax("NumList", "Offer Check")

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

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