我已经阅读了其他一些帖子,但未能找到答案。我有两个表,我正在链接(A& B)。我要做的是获取列值不同的所有行。
我知道我需要一个OUTER JOIN来检索这些行,但它没有返回NULLS。
这是我的情景:我们(我的公司)是第三方业务。我们为客户外包工作。因此,当我们的外包商有一定的费用时,我需要将这笔费用加到我的客户方面。事情陷入困境,我们并不总是记得将这些费用加到我的客户工资上(导致我们赔钱,我们正在偿还我们的外包商)
因此,我正在构建一份报告,该报告将从2个表(客户和外包商)中提取所有记录,其中包括付款详细信息。我需要从两个表中提取费用记录,只有费用的总和(因为可能有多个费用记录)不匹配。意味着价值不同或外包商增加了费用但客户没有(意味着空值发挥作用)
这是我的,但它不会返回空值。我想我可能要做子查询,但我不确定。任何帮助将不胜感激!
SELECT c.jobNum, SUM(c.expenses) as cExp, SUM(o.expenses) as oExp
FROM customer AS c
FULL JOIN outsourcer AS o
ON c.jobNum = o.jobNum
WHERE cExp <> oExp
GROUP BY c.jobNum
答案 0 :(得分:0)
我希望这会有所帮助
SELECT t.jobNum,t.cExp,t.oExp
FROM
(SELECT c.jobNum, SUM(c.expenses) as cExp, SUM(o.expenses) as oExp
FROM customer AS c
FULL JOIN outsourcer AS o
ON c.jobNum = o.jobNum
GROUP BY c.jobNum
)t
WHERE t.cExp <> t.oExp