簡體   English   中英

MS Access SQL查詢來自兩個表的不匹配的行

[英]MS Access SQL Query unmatched rows from two tables

假設我的Table_A和Table_B具有以下行:


Table_A:

ID   PART_ID   KIT_ID
---------------------
1    1         340
2    12        340
3    19        340
4    30        340
5    1         348
6    19        348
7    27        348
...

Table_B:

PART_ID   REQ
-------------
1         Y
12        Y
19        Y
27        Y
30        Y
...

如何在Table_C中獲得以下結果?


Table_C:

PART_ID   KIT_ID
----------------
27        340
12        348
30        348
...

我已經嘗試過使用“不匹配的行”查詢向導,由於某種原因,我無法獲得與我需要的結果相似的結果。例如,客戶訂購了一個套件,每個套件包含一堆零件(有些是必需的,有些不是)。 如何找到每個套件缺少的零件?

生成套件和零件的所有組合,然后濾除不存在的組合:

select k.kit_id, p.part_id
from (select distinct kit_id from table_a) as k,  -- no cross join in MS ACCESS
     table_b p
where not exists (select 1
                  from table_a as a
                  where a.kit_id = k.kit_id and a.part_id = p.part_id 
                 );

您可能需要在外部where子句中使用條件REQ = "Y" 我不確定這是否重要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM