SQLデータベースに2つの同一のテーブルがあります。これらのテーブルはそれぞれアイテムコードと数量で構成されています。
両方のテーブルで数量が異なるアイテムと、
他のテーブルには存在しません
ITEMCODE = ITEMCODE AND QTY<>QTYでFULLOUTERJOINを使用してみました
動作していません
私が得ている結果は次のようなものです:
SQLデータベースに2つの同一のテーブルがあります。これらのテーブルはそれぞれアイテムコードと数量で構成されています。
両方のテーブルで数量が異なるアイテムと、
他のテーブルには存在しません
ITEMCODE = ITEMCODE AND QTY<>QTYでFULLOUTERJOINを使用してみました
動作していません
私が得ている結果は次のようなものです:
select *
from table1 a full outer join table2 b
on a.code = b.code
where a.qty <> b.qty or a.code is null or b.code is null
私の幸運な推測は、コード列がnullである行を除外したことです
次のようなものを試してください。
SELECT c.Code ,
t1.Code ,
t1.Qty ,
t2.Code ,
t2.Qty
FROM ( SELECT Code
FROM dbo.Table1
UNION
SELECT Code
FROM dbo.Table2
) c
LEFT OUTER JOIN dbo.Table1 t1 ON c.Code = t1.Code
LEFT OUTER JOIN dbo.Table2 t2 ON c.Code = t2.Code
WHERE t1.Code IS NULL
OR t2.Code IS NULL
OR t1.Qty <> t2.Qty
WHERE句に不平等のテストがあるため、両方のテーブルにあるアイテムのみを暗黙的に含めています。このようにして、一方のテーブルにはあるが他方のテーブルにはないアイテム、または数量に差があるアイテムを含めます。