我正在进行左连接查询,以比较两个表中 f9 和 sumoff6 列上彼此不相等的任何值(仅当 F1 列相同时)。如果它们不同,我想减去它们。我得到的结果显示两个表上已有相同的值。我需要 f1 列在两个表上匹配,但如果它们在 sumoff6 和 f9 列上的值不匹配,则显示它们并减去它们。我正在使用 MS Access SQL 视图。
Query
SELECT statement.f1, statement.f9
FROM statement
LEFT JOIN allocation_final ON statement.[f1] = allocation_final[f1]
WHERE [allocation_final].sumoff6 <> statement.f9
报表表:
f1 f9
-----------------
1 135.58
2 166.30
3 40.22
4 86.46
5 170.33
6 96.40
最终分配:
f1 SumOff6
--------------
1 135.58
2 166.30
3 40.00
4 86.46
5 170.33
6 40.22
7 22.40
8 70.00
9 96.40
10 50.00
Results
f1 f9
------------------
1 135.58
2 166.3
4 86.46
5 170.33
问题是allocation_final.sumoff6
has a NULL
值,以及WHERE
条件过滤掉NULL
价值观。只需测试一下这个条件:
SELECT statement.f1, statement.f9
FROM statement LEFT JOIN
allocation_final
ON statement.[f1] = allocation_final[f1]
WHERE [allocation_final].sumoff6 <> statement.f9 OR
[allocation_final].sumoff6 IS NULL;
EDIT:
也许您的加入方向错误:
SELECT allocation_final.f1, statement.f9, allocation_final.sumoff6
FROM allocation_final LEFT JOIN
statement
ON statement.[f1] = allocation_final[f1]
WHERE allocation_final.sumoff6 <> statement.f9 OR
statement.f9 IS NULL;
根据您的样本数据,这更有意义。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)