2013-02-14 30 views
3

我是新来的sql,我需要一点帮助。我有一个union查询与3个表。我有一个虚拟列,所以我可以告诉每一行来自哪个表。我希望能够过滤此虚拟列以仅显示特定表中的行。功能在联合查询中的虚拟列

我使用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; 

我想这样的形式链接到一个列表框,然后有一些textboxs筛选结果。

回答

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

+1

非常感谢你,就可以当场现在的工作,你能解释一下这是如何工作。再一次感谢你 – Tellice 2013-02-14 14:51:50