0

我无法让不匹配的查询按我的意愿工作。我正在使用 Access 2010,它是一个 .accdb 应用程序。

我有两张桌子。第 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 回答