-1

SQLデータベースに2つの同一のテーブルがあります。これらのテーブルはそれぞれアイテムコードと数量で構成されています。

両方のテーブルで数量が異なるアイテムと、

他のテーブルには存在しません

ITEMCODE = ITEMCODE AND QTY<>QTYでFULLOUTERJOINを使用してみました

動作していません

私が得ている結果は次のようなものです:

http://www.sendspace.com/file/nmb7yu

4

2 に答える 2

1
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である行を除外したことです

于 2013-01-21T15:32:31.867 に答える
1

次のようなものを試してください。

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句に不平等のテストがあるため、両方のテーブルにあるアイテムのみを暗黙的に含めています。このようにして、一方のテーブルにはあるが他方のテーブルにはないアイテム、または数量に差があるアイテムを含めます。

于 2013-01-21T15:33:12.273 に答える