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