2013-02-08 3 views
1

У меня около 13 000 учетных записей, которые мне нужны, чтобы вытащить различные данные из нескольких таблиц данных, используя левые соединения. Общее количество учетных записей - миллионы. У меня нет доступа на запись к серверу, но мне было интересно, есть ли способ создать пользовательскую/временную таблицу в любом случае и присоединиться к этому, вместо того чтобы писать действительно, очень долго, где AccountID в (.. ...) заявление. Идентификаторы учетных записей в настоящее время находятся в одном столбце Excel, поэтому мне нужно как-то вернуть их на сервер.Экстренное длинное ведение/заявление - лучший вариант?

Мысли?

+6

показать нам запрос. –

+0

Возможно, вы можете использовать 'EXISTS' вместо' IN' на основе некоторой логики? – Orangecrush

+3

Какие РСУБД? Если SQL Server вам не нужны какие-либо конкретные разрешения для создания таблицы '# temp'. –

ответ

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 на локальном компьютере, а также создать связанный сервер для живого сервера, и вы все готово. Попросите их настроить представление необходимых вам данных и предоставить вам доступ к представлению. Думаю, это все, что вам нужно.

Смежные вопросы