Ms access 查找受其他值约束的缺失值
我有两张桌子。表1包含唯一的帐号和唯一的帐号名。表2包含与表1的账号相关的账号,但也包含另一个“父”账号 我正在尝试查找表1中存在但表2中不存在的所有帐号。此外,我还想查看表2中“家长”账号缺失的每个缺失账号 前 表1Ms access 查找受其他值约束的缺失值,ms-access,ms-access-2013,Ms Access,Ms Access 2013,我有两张桌子。表1包含唯一的帐号和唯一的帐号名。表2包含与表1的账号相关的账号,但也包含另一个“父”账号 我正在尝试查找表1中存在但表2中不存在的所有帐号。此外,我还想查看表2中“家长”账号缺失的每个缺失账号 前 表1 AccountNum AccountName 1 a 2 b 3 c 4 d 表2 ParentAccount AccountNum AccountName 100
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中工作。让我们先创建一个名为[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
现在我们可以提取表2中不存在的数据
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
非常感谢你!这正是我所需要的。