2013-02-08 20 views
1

我有大約13,000個AccountID,我需要使用左連接從幾個數據表中提取各種數據。帳戶ID總數爲數百萬。我沒有對服務器的寫訪問權限,但我想知道是否有辦法我可以創建一個自定義/臨時表,並對其進行連接,而不是寫一個真正的,真正長的Where AccountID in(.. ...)聲明。 accountIDs目前在一個單獨的Excel列中,所以我不得不以某種方式將它們返回到服務器中。超長在何處/在聲明中 - 更好的選擇?

想法?

+6

向我們顯示查詢。 – 2013-02-08 13:53:10

+0

基於某種邏輯,你可以使用'EXISTS'而不是'IN'? – Orangecrush 2013-02-08 13:55:35

+3

什麼RDBMS?如果SQL Server不需要任何特定的權限來創建'#temp'表。 – 2013-02-08 13:56:00

回答

0

您可以使用OPENDATASOURCE來訪問您的Excel文件,但有人不得不將您的Excel文件推送到服務器(不理想)。

SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 
'Data Source=C:\DataFolder\Documents\TestExcel.xls;Extended Properties=EXCEL 5.0')...[Sheet1$] ; 

你可以問你的DBA團隊到本地計算機上安裝SQL Server客戶端和鏈接服務器設置到實時服務器,你都設置。要求他們設置您需要的數據視圖,並讓您訪問視圖。我想這就是你需要的一切。