我无法让不匹配的查询按我的意愿工作。我正在使用 Access 2010,它是一个 .accdb 应用程序。
我有两张桌子。第 1 天和第 2 天
他们都有栏目:position, artno, artdesc, qty
列位置是存储位置的完整列表,即使位置为空,也会列出位置。
我想做的是比较 Day1 和 Day2 并生成与前一天不完全相同的位置列表。IE 其他文章,不同数量的文章,即使文章存储在位置Day1,但不再存在于Day2。
如果您愿意,可以将其称为 0 库存。
有任何想法吗?
我无法让不匹配的查询按我的意愿工作。我正在使用 Access 2010,它是一个 .accdb 应用程序。
我有两张桌子。第 1 天和第 2 天
他们都有栏目:position, artno, artdesc, qty
列位置是存储位置的完整列表,即使位置为空,也会列出位置。
我想做的是比较 Day1 和 Day2 并生成与前一天不完全相同的位置列表。IE 其他文章,不同数量的文章,即使文章存储在位置Day1,但不再存在于Day2。
如果您愿意,可以将其称为 0 库存。
有任何想法吗?
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
LEFT JOIN像这样尝试:
SELECT *
FROM Day1 d1
LEFT JOIN Day2 ON d1.position = d2.position
这将包括不匹配的行,即表中不再存在的行Day2。