我有两张桌子。表1包含唯一帐号和唯一帐户名。表2包含与Table1帐号相关的帐号,以及另一个“父”帐号。
我试图找到Table1中存在的所有帐号,但在Table2中不存在。此外,我想根据表2中的“父”帐号丢失每个丢失的帐号。
实施例。
表1
AccountNum AccountName
1 a
2 b
3 c
4 d
表2
ParentAccount AccountNum AccountName
100 1 a
100 2 b
200 1 a
200 2 b
200 4 d
我希望我的结果能够回归:
100 3 c
100 4 d
200 3 c
到目前为止,我只能弄清楚如何返回表2中根本不存在的值,但不受父帐户的限制。我会将表格分开,但我有数百个父帐户。
SELECT Table1.AccountNum, Table1.AccountName
FROM Table1 LEFT JOIN Table2 ON Table1.[AccountNum] = Table2.[AccountNum]
WHERE (((Table2.AccountNum) Is Null));
非常感谢任何帮助。我已经坚持了很长一段时间并且正在使用Access 2013。
答案 0 :(得分:0)
让我们首先创建一个名为[AccountCombinations]的已保存查询,该查询为我们提供了ParentAccount和AccountNum的所有组合:
SELECT t2.ParentAccount, t1.AccountNum, t1.AccountName
FROM
Table1 t1,
(
SELECT DISTINCT ParentAccount FROM Table2
) t2
该查询返回
ParentAccount AccountNum AccountName
------------- ---------- -----------
100 1 a
200 1 a
100 2 b
200 2 b
100 3 c
200 3 c
100 4 d
200 4 d
现在我们可以提取Table2中不存在的那些
SELECT *
FROM AccountCombinations
WHERE NOT EXISTS
(
SELECT *
FROM Table2
WHERE AccountCombinations.ParentAccount=Table2.ParentAccount
AND AccountCombinations.AccountNum=Table2.AccountNum
)
ORDER BY ParentAccount, AccountNum
...返回...
ParentAccount AccountNum AccountName
------------- ---------- -----------
100 3 c
100 4 d
200 3 c