我正在使用 VBA 在 Access 中生成 SQL 查询。我有两个 SQL 查询,它们返回两个项目列表,其中状态列显示为必需或可选:
"SELECT *, 'Required' as status FROM tblMain WHERE " & where_1
"SELECT *, 'Optional' as status FROM tblMain WHERE " & where_2
*where_1* 和 *where_2* 是我在 VBA 中构建的字符串变量——尽管它们是什么并不重要。
我想做的是有一个组合列表,如果一个项目显示在两个列表中,我希望该项目只显示一次,状态为“必需”(“必需”胜过“可选”)。我从联合查询开始,但我不确定如何消除具有“可选”状态的重复行。
SELECT * FROM
((SELECT *, 'Required' as status FROM tblMain WHERE where_1)
UNION
(SELECT *, 'Optional' as status FROM tblMain WHERE where_2))
我在想可以使用 DISTINCT 或可能使用 FIRST,但不幸的是,我无法确定语法。