2013-03-25 20 views
0

我有一個ORACLE表,其中有大約500萬條記錄,並在不斷增長。他們正在使用訪問來將數據導出到(從Oracle到Access)。無論我建議他們如何,他們都不會改變他們的系統。SQL/MYSQL:如何顯示3個相同的表(來自3個不同的數據庫文件),就好像它是一個表一樣

因此,爲了能夠使用數據並將其導出爲ex​​cel,從訪問中,我必須將數據拆分爲3個數據庫文件。在例子,讓我們說,我有表

database1.TBL_A_to_G

database2.TBL_H_to_O

database3.TBL_P_to_Z

由於他們來自同一個表,它們具有相同的字段。比方說,

字段1,字段2,字段3 ... Field30

我怎樣才能查詢,在訪問,在那裏我從3個表,如果它是一個獲取數據?

我試過

SELECT字段1,字段2,字段3,字段4,... Field30 FROM TBL_A_to_G

UNION

SELEC字段1,字段2,字段3,字段4,... Field30 FROM TBL_H_to_O

-I必須保存該查詢作爲TBL_A_O然後,

SELECT字段1,字段2,字段3,字段4,... Field30 FROM TBL_A_O

UNION

SELECT字段1,字段2,字段3,字段4,... Field30 FROM TBL_P_to_Z

的這種方法存在的問題是,我不能在一個查詢語句中合併這三個表。我收到一條錯誤消息,說我可以聯合許多領域。另外,我仍然有一些性能問題。我需要找到一種方法來實現這一點,並考慮到性能。

我願意接受替代品。目標是從這三個表(在三個不同的數據庫中)獲取數據,然後將它們作爲查詢(使用公式等)導出到excel中。

+0

*「我收到一條錯誤消息,說我可以合併很多字段。」*請提供確切的錯誤消息。 – cdhowie 2013-03-25 01:11:06

+0

我知道你說過他們不會改變他們做事的方式,但是......你確實知道更新的Excel可以直接從Oracle獲取數據嗎? – 2013-03-25 02:26:33

+0

http://blog.mclaughlinsoftware.com/microsoft-excel/how-to-query-oracle-from-excel-2007/ – 2013-03-25 02:30:23

回答

0

嘗試使用union all代替:

SELECT Field1, Field2, Field3, Field4, ... Field30 FROM TBL_A_to_G 
UNION ALL 
SELECT Field1, Field2, Field3, Field4, ... Field30 FROM TBL_H_to_O 
union all 
SELECT Field1, Field2, Field3, Field4, ... Field30 FROM TBL_P_to_Z 

隨着每桌只有30場,這應該是罰款訪問。

+0

但請記住,UNION ALL不會刪除重複項。 – crazylpfan 2013-03-25 01:12:35

+0

@crazylpfan如果表格代表分區數據,則不應該有任何重複。 – cdhowie 2013-03-25 02:14:28

+0

@cdhowie是的,這三個表是來自源表的分區(來源:oracle; Access數據庫是「數據插座」,分區到樹中以便能更快地工作)。源數據沒有重複的字段。 – Omar 2013-03-25 13:57:24

0

首先,您需要知道是否要重複註冊,如果是這樣,請使用UNION ALL,否則使用UNION。 可能你必須更新來自ACCESS的統計數據才能獲得更好的性能。 關於字段問題,您是不是使用錯誤的名稱來訪問數據,請記住UNION/UNION ALL將第一個查詢的字段名稱用於結果表。

+0

嘗試使用*而不是字段名稱作爲測試的判斷,也許您在選擇中使用了太多字符。 – Wander 2013-03-25 02:20:45

相關問題