VBA を使用して、Access で SQL クエリを生成しています。必須またはオプションを示すステータス列を持つアイテムの 2 つのリストを返す 2 つの SQL クエリがあります。
"SELECT *, 'Required' as status FROM tblMain WHERE " & where_1
"SELECT *, 'Optional' as status FROM tblMain WHERE " & where_2
*where_1* と *where_2* は、VBA 内で作成する文字列変数です。ただし、それらが何であるかはあまり重要ではありません。
私がやりたいのは、1 つの結合されたリストを持つことです。項目が両方のリストに表示される場合、その項目を「必須」ステータスで 1 回だけ表示したいと思います (「必須」は「オプション」よりも優先されます)。ユニオン クエリから始めましたが、「オプション」ステータスの重複行を削除する方法がわかりません。
SELECT * FROM
((SELECT *, 'Required' as status FROM tblMain WHERE where_1)
UNION
(SELECT *, 'Optional' as status FROM tblMain WHERE where_2))
私は DISTINCT またはおそらく FIRST を使用できると考えていますが、残念ながら構文を理解するのに問題があります。