2013-10-31 38 views
0

如果我想檢查在三個不同數據庫的任何一箇中的3個不同表上存在哪些僱員(以字母表示)。我的查詢應該如何?我不想選擇整個表格並將其粘貼到Excel中,然後執行vlookup。實際上我有13個數據庫需要加入,但我只是在我的問題中使用了三個樣本數據庫來解釋我的困難。我只需要知道我的查詢應該是什麼樣子。我想用12個數據庫加入我的表使用子查詢。請幫忙。如何查看3個不同數據庫中的任何3個表中的哪一個僱員可用?

Database1.ResourceTableUS Database2.ResourceTableUK  Database3.ResourceTableAUS 
col Employee     Employee      Employee 

row1 A       A        A     
row2 B       C        B 
row3 C       I        C 
row4 E       J        K 
row5 F       K        N 
row6 H       N        T 

Answer: A,B,C,K,N - because these are present at least in two tables (B) or three tables (A) in three databases. 

謝謝!

回答

0

請嘗試:

select DISTINCT 
    COLUMN_Name 
from 
    select 
     COLUMN_Name, COUNT(*) over (partition by COLUMN_Name) Num 
    FROM(
     select COLUMN_Name from Database1.ResourceTableUS union all 
     select COLUMN_Name from Database2.ResourceTableUK union all 
     select COLUMN_Name from Database3.ResourceTableAUS 
    )x 
)xx 
where Num>1 
+0

謝謝techdo!讓我試試 – BA82283

+0

如何刪除重複項?我嘗試使用UNION而不是UNION ALL,但UNION給了我零結果。 – BA82283

+0

在外部選擇中加入'DISTINCT',請檢查編輯後的答案。 – TechDo

0
SELECT A.employeeID FROM 
(select * FROM Database1.ResourceTableUS, Database2.ResourceTableUK, Database3.ResourceTableAUS 
WHERE Database1.ResourceTableUS.employeeID IN (Database2.ResourceTableUK.employeeID, 
Database3.ResourceTableAUS.employeeID) AND Database2.ResourceTableUK.employeeID IN 
(Database1.ResourceTableUS.employeeID,Database3.ResourceTableAUS.employeeID) AND 
Database3.ResourceTableAUS.employeeID IN (Database2.ResourceTableUK.employeeID,Database1.ResourceTableUS.employeeID)) A 
+0

謝謝Esam Naas! – BA82283

相關問題