SQL 从两个表中选择值不同(包括空值)的行
SQL Selecting rows from two tables where values are different including nulls
我已经阅读了一些其他帖子,但未能找到我的答案。我有两个要链接的表(A 和 B)。我想要做的是获取我的列值不同的所有行。
我知道我需要一个 OUTER JOIN 来检索这些行,但它不是 returning NULLS。
这是我的情况:我们(我的公司)是第三方企业。我们为客户外包工作。因此,当我们的外包商有一定的费用时,我需要将该费用添加到我的客户付款中。事情一败涂地,我们并不总是记得将这些费用添加到我的客户付款中(导致我们赔钱,因为我们正在报销我们的外包商)
因此,我正在构建一个报告,该报告将从 2 个表(客户和外包商)中提取所有记录,其中包括付款明细。只有在费用总和(因为可能有多个费用记录)不匹配的情况下,我才需要从两个表中提取费用记录。这意味着价值不同或外包商增加了费用但客户没有(意味着空值开始起作用)
这是我所拥有的,但它不会 return 为空。我在想我可能必须做子查询,但我不确定。如有任何帮助,我们将不胜感激!
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
我已经阅读了一些其他帖子,但未能找到我的答案。我有两个要链接的表(A 和 B)。我想要做的是获取我的列值不同的所有行。
我知道我需要一个 OUTER JOIN 来检索这些行,但它不是 returning NULLS。
这是我的情况:我们(我的公司)是第三方企业。我们为客户外包工作。因此,当我们的外包商有一定的费用时,我需要将该费用添加到我的客户付款中。事情一败涂地,我们并不总是记得将这些费用添加到我的客户付款中(导致我们赔钱,因为我们正在报销我们的外包商)
因此,我正在构建一个报告,该报告将从 2 个表(客户和外包商)中提取所有记录,其中包括付款明细。只有在费用总和(因为可能有多个费用记录)不匹配的情况下,我才需要从两个表中提取费用记录。这意味着价值不同或外包商增加了费用但客户没有(意味着空值开始起作用)
这是我所拥有的,但它不会 return 为空。我在想我可能必须做子查询,但我不确定。如有任何帮助,我们将不胜感激!
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