0

一致しないクエリを希望どおりに機能させるのに問題があります。私はAccess2010を使用していますが、これは.accdbアプリケーションです。

2つのテーブルがあります。1日目と2日目

両方に列があります:position、artno、artdesc、qty

列の位置はストレージ位置の完全なリストであり、空であるかどうかに関係なく位置がリストされます。

私がやりたいのは、Day1とDay2を比較して、前日とまったく同じではないポジションのリストを作成することです。IEの他の記事、異なる数量の記事、および記事がDay1の位置に保管されていたとしても、Day2には存在しません。

必要に応じて、0在庫在庫と呼びます。

何か案は?

4

2 に答える 2

1
select *
from Day1
join Day2 on Day1.position = Day2.position
    and
    (
      (Day1.artno != Day2.artno 
        or (Day1.artno is null and Day2.artno is not null) 
        or (Day1.artno is not null and Day2.artno is null)
      )
      or
      (Day1.qty!= Day2.qty
        or (Day1.qty is null and Day2.qty is not null) 
        or (Day1.qty is not null and Day2.qty is null)
      )
   )

これは、「そこにない」として保存されることに対応しますnull

于 2012-11-17T13:46:56.917 に答える
0

LEFT JOINそのようにしてみてください:

SELECT *
FROM Day1 d1
LEFT JOIN Day2 ON d1.position = d2.position

これには、一致しない行、つまりテーブルに存在しなくなった行が含まれDay2ます。

于 2012-11-17T12:36:51.837 に答える