我需要在單個查詢中合并具有不同列的兩個記錄集。我的記錄集是查詢,但為了顯示問題,我在這里將它們表示為表。以下是 Access 中的設定:

我需要的是一個資料表,其中包含基于 ID1 和 ID2 的值Data_1以及Data_2它們何時存在的值:
| ID1 | ID2 | 資料_1 | 資料_2 |
|---|---|---|---|
| 1 | 1 | 一種 | X |
| 2 | 1 | 乙 | |
| 3 | 1 | 是 | |
| 4 | 1 | C | Z1 |
| 4 | 2 | Z2 |
我正在嘗試通過執行left joinfrom ID1toID1_1和 to來做到這一點ID1_2。這為我提供了ID11、2 和 3 值的正確輸出。但我無法獲得 . 的兩行的正確輸出ID1 = 4。
例如,SQL:
SELECT ID1, nz(ID2_1, ID2_2) AS ID2, Data_1, Data_2
FROM (ID1 LEFT JOIN Table_1 ON ID1.ID1 = Table_1.ID1_1)
LEFT JOIN Table_2 ON ID1.ID1 = Table_2.ID1_2
WHERE Data_1 Is Not Null OR Data_2 Is Not Null;
給了我兩行 for ID1 = 4,但第二行是錯誤的:

和 SQL:
SELECT ID1, nz(ID2_1, ID2_2) AS ID2, Data_1, Data_2
FROM (ID1 LEFT JOIN Table_1 ON ID1.ID1 = Table_1.ID1_1)
LEFT JOIN Table_2 ON ID1.ID1 = Table_2.ID1_2
WHERE ID2_1 is not null and ID2_2 is null or
ID2_1 is null and ID2_2 is not null or
ID2_1 = ID2_2;
只給我一行ID1 = 4:

我究竟做錯了什么?我需要做什么才能獲得所需的輸出?
uj5u.com熱心網友回復:
考慮:
SELECT Table_2.ID1_2, Table_2.ID2_2, Table_1.Data_1, Table_2.Data_2
FROM Table_2 LEFT JOIN Table_1 ON (Table_2.ID2_2 = Table_1.ID2_1) AND (Table_2.ID1_2 = Table_1.ID1_1)
UNION
SELECT Table_1.ID1_1, Table_1.ID2_1, Table_1.Data_1, Table_2.Data_2
FROM Table_1 LEFT JOIN Table_2 ON (Table_1.ID2_1 = Table_2.ID2_2) AND (Table_1.ID1_1 = Table_2.ID1_2);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/349120.html
下一篇:MsAccess轉換科學記數法
