在Access中的连接查询中停止重复结果

时间:2017-11-19 14:23:35

标签: sql excel-vba ms-access duplicates vba

尝试进行一个查询,将订单与请购单进行匹配,这样对于每个延期订单,如果找到匹配的PartNo,将会有一个请购单来实现它。

后退订单

CustomerNo  PartNo  CustomerDue
---------------------------------
1099        109100  MechShop
1012        187187  EngrShop
1259        547554  MechShop
1455        109444  WeldShop
1695        505444  EngrShop
2999        187187  MechShop

收到的申请

ReqNo  Source  PartNo  DateExp
--------------------------------
AB200  Depot1  547554  10/01/2018
RB300  Depot2  187187  02/01/2018
AB500  Depot1  547554  10/01/2018
AB560  Depot3  109453  01/01/2018
QB100  Depot4  187187  04/20/2018
RB480  Depot4  109100  01/31/2018
TB100  Depot5  547554  12/20/2018
SB500  Depot4  187187  05/01/2018

我通过零件编号将两者联系起来但是我为每个匹配的条目重复(重复?)条目。我的链接显示了后退订单表中的所有记录,只显示了与来电申请表相匹配的记录,因此如果显示空白订单,我知道我必须放置一个请购单来完成它。但是,我还需要显示所有正在填写相应请购单的订单。这就是我得到的:

查询结果

CustomerNo PartNo CustomerDue ReqNo Source PartNo DateExp
------------------------------------------------------------
1099       109100 MechShop    RB480 Depot4 109100 01/31/2018
1259       547554 MechShop    AB200 Depot2 547554 10/01/2018
1259       547554 MechShop    AB500 Depot2 547554 10/01/2018
1259       547554 MechShop    TB100 Depot5 547554 12/20/2018
1455       109444 WeldShop
1695       505444 EngrShop
1012       187187 EngrShop    RB300 Depot2 187187 02/01/2018
1012       187187 EngrShop    QB100 Depot4 187187 04/20/2018
1012       187187 EngrShop    SB500 Depot4 187187 05/01/2018
2999       187187 MechShop    RB300 Depot2 187187 02/01/2018
2999       187187 MechShop    QB100 Depot4 187187 04/20/2018
2999       187187 MechShop    SB500 Depot4 187187 05/01/2018

请注意CustomerNo 1259& 1012&重复2999。我只希望查询匹配条目一次,然后继续前进而不是向我显示所有匹配的结果。如何在Access中实现这些功能?通过向Back Orders表添加唯一ID,我被告知了唯一值,但这不起作用。任何帮助,将不胜感激。谢谢。

编辑: 这是我理想的结果。

查询结果

CustomerNo PartNo CustomerDue ReqNo Source PartNo DateExp
------------------------------------------------------------
1099       109100 MechShop    RB480 Depot4 109100 01/31/2018
1259       547554 MechShop    AB200 Depot2 547554 10/01/2018
1455       109444 WeldShop
1695       505444 EngrShop
1012       187187 EngrShop    RB300 Depot2 187187 02/01/2018
2999       187187 MechShop    QB100 Depot4 187187 04/20/2018

订单1012由ReqNo RB300填充,然后下一个ReqNo填充相同部件的下一个订单,在这种情况下,订单2999未由RB300填充,因为它已被使用,而是由QB100填充。

1 个答案:

答案 0 :(得分:0)

为什么不展示那些缺失的?

select bo.*
from backorders as bo
where not exists (select 1
                  from requisitions as r
                  where bo.partno = r.partno
                 );