问题:有没有办法让不匹配的查询返回包含多个项目但信息相同的记录?
我正在针对表和SQL查询运行不匹配的查询。一切都适用于查询中不存在的记录。我的问题在于,当查询中存在多个记录时,无法识别应重复的记录。
这些是需要安装和跟踪的飞机部件。每个部分都有与其位置LOC
相关联的代码。在某些情况下,部件具有相同的LOC
代码,但安装了多个部件。
示例:在一种情况下,我们安装了8个螺栓。该表单独列出了每个螺栓,它们都具有相同的LOC
。如果仅安装了一个螺栓,则不匹配的查询不会返回未安装的其余7个螺栓的值。它看到一个螺栓并继续前进。
有没有办法让不匹配的查询返回包含多个项目但LOC
和Name
相同的记录?
SELECT [MCDS-E].MODEL, [MCDS-E].LOC, [MCDS-E].NOMENCLATURE, [MCDS-E].CHANGE_TYPE,
[MCDS-E].TBO, [MCDS-E].CHANGE_NUMBER, [MCDS-E].DA2410,
[MCDS-E].LOCAL_TRACKED, [MCDS-E].COMMENTS
FROM [MCDS-E]
LEFT JOIN Select_ACFT ON [MCDS-E].[LOC] = Select_ACFT.[LOC]
WHERE ((([MCDS-E].MODEL)=Forms!Index!Text5)
AND ((Select_ACFT.LOC) Is Null));
我的桌子可能有:
LOC NOMENCLATURE
- ABCD123 Bolt
- ABCD123 Bolt
- ABCD123 Bolt
- ABCD123 Bolt
查询可能包含:
LOC NOMENCLATURE
- ABCD123 Bolt
匹配查询不会显示未安装的其他三个ABCD123螺栓的任何结果。
非常感谢任何帮助。
由于
答案 0 :(得分:0)
考虑将当前查询返回不匹配的记录,将查询结果集重新连接到原始表。找到这些特定的LOC
后,请加入相关项目的完整[MCDS-E]
表。
以下假设名称是用作联接的主要NOMENCLATURE
字段:
SELECT main.MODEL, main.LOC, main.NOMENCLATURE, main.CHANGE_TYPE,
main.TBO, main.CHANGE_NUMBER, main.DA2410,
main.LOCAL_TRACKED, main.COMMENTS
FROM [MCDS-E] main
INNER JOIN
(SELECT m.[LOC], m.NOMENCLATURE
FROM [MCDS-E] m
LEFT JOIN Select_ACFT s ON m.[LOC] = s.[LOC]
WHERE ((([MCDS-E].MODEL)=Forms!Index!Text5)
AND ((Select_ACFT.LOC) Is Null))) AS dT
ON dT.NOMENCLATURE = main.NOMENCLATURE
或者,将嵌套SELECT
保存为自己的查询:
SELECT main.MODEL, main.LOC, main.NOMENCLATURE, main.CHANGE_TYPE,
main.TBO, main.CHANGE_NUMBER, main.DA2410,
main.LOCAL_TRACKED, main.COMMENTS
FROM [MCDS-E] main
INNER JOIN [UnmatchedQuery] u
ON main.NOMENCLATURE = u.NOMENCLATURE