SQL从两个值不同的表(包括空值)中选择行

SQL从两个值不同的表(包括空值)中选择行,sql,database,querying,Sql,Database,Querying,我读过其他几篇文章,但都没有找到我的答案。我有两个链接A和B的表。我要做的是获取列值不同的所有行 我知道我需要一个外部联接来检索这些行,但它不会返回null 我的设想是:我们公司是第三方企业。我们将工作外包给客户。因此,当我们的外包商有一定的费用时,我需要将该费用加到我的客户方的工资中。事情不了了之,我们并不总是记得把这些费用加到我的客户工资中,这导致我们赔钱,因为我们正在补偿我们的外包商 所以,我正在构建一个报告,它将从两个表中提取所有记录,包括客户和外包商的付款详细信息。我只需要在费用总和不

我读过其他几篇文章,但都没有找到我的答案。我有两个链接A和B的表。我要做的是获取列值不同的所有行

我知道我需要一个外部联接来检索这些行,但它不会返回null

我的设想是:我们公司是第三方企业。我们将工作外包给客户。因此,当我们的外包商有一定的费用时,我需要将该费用加到我的客户方的工资中。事情不了了之,我们并不总是记得把这些费用加到我的客户工资中,这导致我们赔钱,因为我们正在补偿我们的外包商

所以,我正在构建一个报告,它将从两个表中提取所有记录,包括客户和外包商的付款详细信息。我只需要在费用总和不匹配的情况下从两个表中提取费用记录,因为可能有多个费用记录不匹配。这意味着值不同,或者外包商增加了费用,但客户并不意味着空值起作用

这是我有的,但它不会返回空值。我想我可能不得不做子查询,但我不确定。任何帮助都将不胜感激

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
我希望这有帮助

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

示例数据和期望的结果将有助于澄清您的问题。您使用的是哪种DBMS?您可能希望cExp不同于oExpWhen FULL JOIN,通常将条件放在ON子句中而不是WHERE子句中。例如,在c.jobNum=o.jobNum和cExp oExp上。