Ms-access中的一个查询

Ms-access中的一个查询,ms-access,ms-access-2007,ms-access-2003,Ms Access,Ms Access 2007,Ms Access 2003,此查询显示eventtype不等于PNremoved FROM Wrapper的PartNumber。此查询正在显示正确的数据。可以从此跟踪号中删除零件号,但可以使用其他跟踪号输入零件号。在这种情况下,它不起作用 我希望查询在我们输入相同的零件号和另一个跟踪号时有效 零件号不应与从包装中移除的eventtype=pn一起使用的跟踪号一起显示。但它应该和另一个具有相同零件号的跟踪号一起显示 SELECT tblRevRelLog_Detail.RevRelTrackingNumber,

此查询显示eventtype不等于PNremoved FROM Wrapper的PartNumber。此查询正在显示正确的数据。可以从此跟踪号中删除零件号,但可以使用其他跟踪号输入零件号。在这种情况下,它不起作用

我希望查询在我们输入相同的零件号和另一个跟踪号时有效

零件号不应与从包装中移除的eventtype=pn一起使用的跟踪号一起显示。但它应该和另一个具有相同零件号的跟踪号一起显示

SELECT
    tblRevRelLog_Detail.RevRelTrackingNumber,
    tblRevRelLog_Detail.PartNumber,
    tblRevRelLog_Detail.ChangeLevel,
    tblRevRelLog_Detail.Version,
    tblRevRelLog_Detail.JobPnType,
    tblRevRelLog_Detail.EdsName,
    tblRevRelLog_Detail.DetailerNamePerPartNumber,
    tblRevRelLog_Detail.DetailerCompanyPerPartNumber
FROM
    tblRevRelLog_Detail LEFT JOIN tblEventLog
    ON tblRevRelLog_Detail.PartNumber = tblEventLog.PartNumber
WHERE
    tblEventLog.PartNumber Not In (
        SELECT tblEventLog.PartNumber
        FROM tblEventLog
        WHERE tblEventLog.EventTypeSelected = 'pn REMOVED From Wrapper')
ORDER BY
    tblRevRelLog_Detail.PartNumber;
我用一个例子来说明这一点

Reviewrelease\u Formmain表单链接到reviewreleasetable:

此表包含基本数据和包装编号

wrapper number: Testing RevRel_表单链接到tblRevRelLog_详细信息的子表单

此表单包含有关零件号的数据

part no chnglvl jobpntype engineername company version 8765 1 XXXX XXXXX XXXX xxxx 9898 0 xxxx xxxxx xxxx xxxx 7889 2 xxxx xxxxx xxxx xxxx 链接到tblEventLog的EventHistory子窗体

此表单包含带有零件号的事件

eventdate partnum eventtype errortype errorsubtype comment xxxxx 8765 1-receive new xxxx xxxx xxxxx xxxx 9898 1-recieve new xxxx xxxx xxxxx xxxx 7889 1-receive new xxxx xxxx xxxx xxxx 8765 2-assign xxxx xxx xxx xxx 9898 3 errors xxxx xxxx xxxx 如果我想从包装中删除一个部件号,我将删除它,eventhistory表单如下所示

eventdate partnum eventtype errortype errorsubtype comment xxxxx 8765 1-receive new xxxx xxxx xxxxx xxxx 9898 1-recieve new xxxx xxxx xxxxx xxxx 7889 1-receive new xxxx xxxx xxxx xxxx 8765 2-assign xxxx xxx xxx xxx 9898 3 errors xxxx xxxx xxxx xxx 9898 'pn REMOVED....' xxx xxx xxxx 则RevRel_表单不应显示此零件号数据,如下所示:

part no chnglvl jobpntype engineername company version 8765 1 XXXX XXXXX XXXX xxxx 7889 2 xxxx xxxxx xxxx xxxx 这与我在RevRel_表单的数据源中编写的查询(我在上面编写的查询)配合得很好

但问题是,删除的零件号将来会再次出现另一个新的包装编号。对于我现在使用的查询,它也不会显示带有新包装编号的partnumber数据

因此,我需要一个查询,该查询在RevRel_表单中显示具有新包装编号的partnumber数据。但不是用我们去掉零件号的包装编号

SELECT
    tblRevRelLog_Detail.RevRelTrackingNumber,
    tblRevRelLog_Detail.PartNumber,
    tblRevRelLog_Detail.ChangeLevel,
    tblRevRelLog_Detail.Version,
    tblRevRelLog_Detail.JobPnType,
    tblRevRelLog_Detail.EdsName,
    tblRevRelLog_Detail.DetailerNamePerPartNumber,
    tblRevRelLog_Detail.DetailerCompanyPerPartNumber
FROM
    tblRevRelLog_Detail LEFT JOIN tblEventLog
    ON tblRevRelLog_Detail.PartNumber = tblEventLog.PartNumber
WHERE
    tblEventLog.PartNumber Not In (
        SELECT tblEventLog.PartNumber
        FROM tblEventLog
        WHERE tblEventLog.EventTypeSelected = 'pn REMOVED From Wrapper')
ORDER BY
    tblRevRelLog_Detail.PartNumber;

如果无法看到正确格式的记录,请在“编辑”视图中将其签出。

您需要添加对包装的引用,例如:

WHERE
    tblEventLog.wrapper = 'wrapper id'
    AND tblEventLog.EventTypeSelected <> 'pn REMOVED From Wrapper'

如果事件日志不包含包装器id,我认为您存在设计问题,因为这些事件显然适用于特定的包装器。

我仍然完全不理解这个问题。向我们显示您拥有的数据以及您希望从查询中获取的数据。包装器Id只不过是..trackingnumber。相同包装中的零件号将使用相同的trackingnumber保存。因此,每个零件号都将另存为一条记录,因此trackingnumber对它们来说是通用的。在这个tblEventLog中,“wrapper”是什么。wrapper=“wrapper id”如何识别从包装器中删除的包装器pn属于哪个包装器?如果是跟踪编号,则包装id=跟踪编号。