3

私はSQLが初めてで、少し助けが必要です。union3 つのテーブルを含むクエリがあります。仮想列があるので、各行がどのテーブルからのものかがわかります。この仮想列をフィルタリングして、特定のテーブルの行のみを表示できるようにしたいと考えています。

私は Microsoft Access を使用していますが、これは私がこれまで持っているものです:

SELECT Table1 as Table_Name, Table1.1  
FROM Table1  
UNION ALL  
SELECT Table2 as Table_Name, Table2.1  
FROM Table2  
UNION ALL  
SELECT Table3 as Table_Name, Table3.1  
FROM Table3  
UNION ALL  
WHERE Table_Name = Form1.TextBox  
ORDER BY Table1.1;

これをフォームのリストボックスにリンクしてから、結果をフィルタリングするためのテキストボックスをいくつか用意しようとしています。

4

1 に答える 1

6

どうですか:

SELECT * FROM
( SELECT Table1 as Table_Name, Table1.1
FROM Table1
UNION ALL
SELECT Table2 as Table_Name, Table2.1
FROM Table2
UNION ALL
SELECT Table3 as Table_Name, Table3.1
FROM Table3 ) q
WHERE Table_Name = Forms!Form1!TextBox
ORDER BY Table1.1;

参照: http://access.mvps.org/access/forms/frm0031.htm

于 2013-02-14T12:21:56.307 に答える