2012-06-26 45 views
0

我有幾個疑問(20+)所有返回以下三列:具有相同的字段標題查詢的查詢 - MS訪問

Building | Room | Other 

所有這一切都是文本字段。我想將所有這些查詢結合起來,所以我想看看查詢返回的結果是什麼。

例如,如果我有查詢SELECT Building, Room, Other FROM tblOne WHERE Room=10以及SELECT Building, Room, Other FROM tblOne WHERE Building=20,我該如何將這兩個結合爲一個?顯然這是一個非常簡單的例子,我的真實查詢要複雜得多,因此將它們寫爲1查詢是不可行的。

我想上面的例子輸出:我試着想出了錯誤說:「建築物,房間和其他可能涉及超過一代表」

Building | Room | Other 
``````````````````````` 
20  | 1 | Some Stuff 
20  | 10 | Some More 
5  | 10 | Some Other 
15  | 10 | Some Extra 
20  | 5 | Some Text 

所有的方式(又名它不想在一個標題下將它們組合)。什麼是SQL語法來解決這個問題?

+0

在這個例子中,他們不是;然而,我有更復雜的查詢,這最終被用來創建大型報告,排序由大廈或房間,這將顯示所有可用查詢的建築物/房間的所有結果;我使用VBA爲報表編寫源代碼,因此我需要一種方法來添加所有這些查詢;該聯合代碼比將所有那些複雜的查詢重寫爲OR的代碼要容易得多。 – StuckAtWork

回答

0

結合這兩個查詢與UNION的幫助所有& & UNION這樣

查詢1

SELECT Building, Room, Other FROM tblOne WHERE Room=10 
UNION ALL 
SELECT Building, Room, Other FROM tblOne WHERE Building=20 

查詢2

SELECT Building, Room, Other FROM tblOne WHERE Room=10 
UNION 
SELECT Building, Room, Other FROM tblOne WHERE Building=20 

通知

UNION運算符用於將結果集兩個或多個SELECT語句的結合。

UNION中的每個SELECT語句必須具有相同的列數。這些列也必須具有相似的數據類型。另外,每個SELECT語句中的列必須以相同的順序排列。

默認情況下,UNION運算符只選擇不同的值。要允許重複值,請使用UNION ALL。

+0

選擇最佳,因爲您提供了更完整的解釋。 – StuckAtWork

2
SELECT Building, Room, Other FROM tblOne WHERE Room=10 
    UNION ALL 
    SELECT Building, Room, Other FROM tblOne WHERE Building=20 
+0

...哇。好的,在那個臉上。非常感謝,這就是我需要的。我想我正在尋找一種速記的方式,所以甚至沒有想到這一點。多次寫入SELECT * FROM [MyQueryName]是一項任務,但也許我可以用一些VBA自動化它。 – StuckAtWork