Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Создать SQL запрос из разных баз (SQL и Excel)  [new]
Beliy443
Member

Откуда:
Сообщений: 11
Добрый день. Подскажите пожалуйста как реализовать следующее.

Допустим имеем table1 и table2 в базе данных на sql server. в каждой из них по одному полю name с фамилиями. Тогда, чтобы получить пересечение делается простой запрос:

SELECT table1.name
FROM table1
JOIN Table2 ON table1.name = table2.name


А вопрос такой, можно ли как то сделать то же самое, если table1 в базе SQL, а вот table2 в обычной таблице Excel? Ну что то типа такого:

SELECT table1.name
FROM table1
JOIN Table2 ON table1.name = Имя_файла.xlsx.Имя_столбца


ЗЫ
1)Решение выгрузить всю table1 в Excel и обработать там не подходит ибо таблицы гигантские и элементарно даже на лист не влезут.
2)Читал что-то про линкованные базы, но во-первых не очень понял, а во вторых к настройкам сервера SQL доступа нет (а как я понял там нужны какие то настройки на сервере). Могу только выполнять запросы.
3)Как вариант решения также рассматривал создание временной таблицы в базе данных SQL из файла Excel, но не понял как это делается, да и не уверен, что у меня есть права на создание временных таблиц. Но если там заморочек не много, то посмотрел бы код как это делается.
4) Я не настоящий сварщик
22 мар 17, 12:10    [20320678]     Ответить | Цитировать Сообщить модератору
 Re: Создать SQL запрос из разных баз (SQL и Excel)  [new]
MacaronicTragedy
Member

Откуда:
Сообщений: 99
Beliy443,

можно загрузить Excel-книгу в таблицу сиквеля через import/export wizard в студии.
Можно через openquery обратиться к книге и джоинить с имеющимися таблицами
http://www.sql-server-helper.com/tips/read-import-excel-file-p01.aspx
22 мар 17, 12:14    [20320693]     Ответить | Цитировать Сообщить модератору
 Re: Создать SQL запрос из разных баз (SQL и Excel)  [new]
o-o
Guest
1. пересечение это INTERSECT.
2. импортируйте свой Эксель на сервер визардом,
права-то совсем никакие, или все же на базу есть, на сам сервер нет?
22 мар 17, 12:16    [20320704]     Ответить | Цитировать Сообщить модератору
 Re: Создать SQL запрос из разных баз (SQL и Excel)  [new]
Кесарь
Member

Откуда:
Сообщений: 453
Beliy443,

если ты даже сделаешь каким-то образом динамическое использование файла, то в любом случае он будет грузится во временную таблицу (в памяти или в tempdb).

Так что лучше импортируй, а потом нормально работай с таблицами.

Так точно работать не будет:

FROM table1
JOIN Table2 ON table1.name = Имя_файла.xlsx.Имя_столбца
22 мар 17, 12:23    [20320746]     Ответить | Цитировать Сообщить модератору
 Re: Создать SQL запрос из разных баз (SQL и Excel)  [new]
o-o
Guest
MacaronicTragedy
можно загрузить Excel-книгу в таблицу сиквеля через import/export wizard в студии.

можно, имея права на запись в базу.
пока что он не ответил про права,
знаем только, что они у него есть *на чтение*
MacaronicTragedy
Можно через openquery обратиться к книге и джоинить с имеющимися таблицами
http://www.sql-server-helper.com/tips/read-import-excel-file-p01.aspx

а сервер увидит его локальный диск?
22 мар 17, 12:24    [20320748]     Ответить | Цитировать Сообщить модератору
 Re: Создать SQL запрос из разных баз (SQL и Excel)  [new]
s_ustinov
Member

Откуда: Munchen, DE
Сообщений: 2202
Beliy443,
Можно использовать LibreOffice (аналог екселя).
Создаем коннект к SQL серверу и пишем селект, который будет работать с таблицей с сервера и с листом LibreOffice.
22 мар 17, 12:27    [20320763]     Ответить | Цитировать Сообщить модератору
 Re: Создать SQL запрос из разных баз (SQL и Excel)  [new]
Beliy443
Member

Откуда:
Сообщений: 11
MacaronicTragedy,
Студии нет. Все запросы пишу в VBA.
Насчет джойнить с имеющимися таблицами пробовал OPENROWSET , но вылазит ошибка "Невозможно использовать поставщик OLE DB ... для распределенных запросов, поскольку поставщик настроен на работу в потоке контейнера с одним потоком"

o-o,
нужен JOIN, может просто не так выразился (не сварщик))). "импортируйте свой Эксель на сервер визардом" - не понял что это

"а сервер увидит его локальный диск?" - в принципе, если есть решение то есть и сетевой диск. но опять же не знаю какие там права кому даны....

Кесарь, что то подобное я и думал (в пункте 3 первого сообщения указал). Тогда вопрос, как конкретно выглядит команда по созданию временной таблицы например из файла 1.xlsx (Лист1, данные начиная с ячейки a1)?

s_ustinov,
сторонние программы нет возможности устанавливать
22 мар 17, 12:36    [20320808]     Ответить | Цитировать Сообщить модератору
 Re: Создать SQL запрос из разных баз (SQL и Excel)  [new]
o-o
Guest
нет студии, нет и визарда.
+ установить нельзя => это вам не подходит

про ошибку джета: сервер-то х64?
----
студий-то нет обеих, даже VS нет?
вообще, огласите версию сервера.
это даже из экселя можно, select @@version
22 мар 17, 12:45    [20320849]     Ответить | Цитировать Сообщить модератору
 Re: Создать SQL запрос из разных баз (SQL и Excel)  [new]
Beliy443
Member

Откуда:
Сообщений: 11
o-o, студий обеих нет. кувыркаюсь через vba

SQL Server 2008 x64
22 мар 17, 12:56    [20320900]     Ответить | Цитировать Сообщить модератору
 Re: Создать SQL запрос из разных баз (SQL и Excel)  [new]
s_ustinov
Member

Откуда: Munchen, DE
Сообщений: 2202
Beliy443,
если вам так права урезали - может, оно и не надо?
22 мар 17, 13:10    [20320968]     Ответить | Цитировать Сообщить модератору
 Re: Создать SQL запрос из разных баз (SQL и Excel)  [new]
Beliy443
Member

Откуда:
Сообщений: 11
s_ustinov,
да вот надо бы.
Так то для работы с базой есть специальный клиент. Но в нем ограниченный функционал и нельзя запросы сделать под себя. Поэтому приходится ручками ваять запросы в vba.
Но это дело десятое...
Проблема опубликована в первом посте, ищется ее решение, если оно существует
22 мар 17, 13:19    [20321002]     Ответить | Цитировать Сообщить модератору
 Re: Создать SQL запрос из разных баз (SQL и Excel)  [new]
Beliy443
Member

Откуда:
Сообщений: 11
s_ustinov
Beliy443,
Можно использовать LibreOffice (аналог екселя).
Создаем коннект к SQL серверу и пишем селект, который будет работать с таблицей с сервера и с листом LibreOffice.

Кстати, коннект то можно к серверу и из Excel сделать. Только как заJOINить две таблицы, одну из ексель, а вторую с бд?
22 мар 17, 13:21    [20321015]     Ответить | Цитировать Сообщить модератору
 Re: Создать SQL запрос из разных баз (SQL и Excel)  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Beliy443
s_ustinov
Beliy443,
Можно использовать LibreOffice (аналог екселя).
Создаем коннект к SQL серверу и пишем селект, который будет работать с таблицей с сервера и с листом LibreOffice.

Кстати, коннект то можно к серверу и из Excel сделать. Только как заJOINить две таблицы, одну из ексель, а вторую с бд?

лютое извращение. OPENQURY() + JOIN
22 мар 17, 13:23    [20321025]     Ответить | Цитировать Сообщить модератору
 Re: Создать SQL запрос из разных баз (SQL и Excel)  [new]
s_ustinov
Member

Откуда: Munchen, DE
Сообщений: 2202
Beliy443
s_ustinov
Beliy443,
Можно использовать LibreOffice (аналог екселя).
Создаем коннект к SQL серверу и пишем селект, который будет работать с таблицей с сервера и с листом LibreOffice.

Кстати, коннект то можно к серверу и из Excel сделать. Только как заJOINить две таблицы, одну из ексель, а вторую с бд?

А какая версия Екселя? PowerPivot есть?
Если есть - можно там попробовать.
22 мар 17, 13:26    [20321041]     Ответить | Цитировать Сообщить модератору
 Re: Создать SQL запрос из разных баз (SQL и Excel)  [new]
o-o
Guest
TaPaK
OPENQURY() + JOIN

какой же openquery, если он не может линкеды создавать.
кстати, его послал и openrowset, ибо он заюзал jet,
а сервер х64.
а есть ли там ace12, никто не знает,
известно только, что устанавливать ничего нельзя
22 мар 17, 13:33    [20321079]     Ответить | Цитировать Сообщить модератору
 Re: Создать SQL запрос из разных баз (SQL и Excel)  [new]
Кесарь
Member

Откуда:
Сообщений: 453
o-o,

это из разряда "и на хрен так жить?!"

Жесть какая-то. Ничего нельзя, ничего нет, но результат вынь да положь.
22 мар 17, 13:43    [20321123]     Ответить | Цитировать Сообщить модератору
 Re: Создать SQL запрос из разных баз (SQL и Excel)  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4279
Кесарь
o-o,

это из разряда "и на хрен так жить?!"

Жесть какая-то. Ничего нельзя, ничего нет, но результат вынь да положь.

Предложенный вами вариант залить все из екселя в скуль и там извращаться это выход из положения.
И потом запрос может быть сложным - будете индексы на ексельные поля делать?
Почистить опять таки легко - тупо удалить все ненужные записи.
Там небольшой гемор только с импортированием полей с типом дата.
22 мар 17, 15:20    [20321592]     Ответить | Цитировать Сообщить модератору
 Re: Создать SQL запрос из разных баз (SQL и Excel)  [new]
o-o
Guest
SQL2008
Там небольшой гемор только с импортированием полей с типом дата.

там небольшой гимор с отсутствием студии и визарда,
невозможностью создать линкед сервер и доступом к самому локальному файлу,
а также с невозможностью что-либо установить вообще
22 мар 17, 15:29    [20321634]     Ответить | Цитировать Сообщить модератору
 Re: Создать SQL запрос из разных баз (SQL и Excel)  [new]
MacaronicTragedy
Member

Откуда:
Сообщений: 99
o-o,

да это у меня карма просто плохая стала и биополе ослабло. я раньше, как настоящий экстрасенс угадывал такие штуки :-(
22 мар 17, 15:35    [20321673]     Ответить | Цитировать Сообщить модератору
 Re: Создать SQL запрос из разных баз (SQL и Excel)  [new]
o-o
Guest
MacaronicTragedy = SQL2008?
22 мар 17, 15:49    [20321736]     Ответить | Цитировать Сообщить модератору
 Re: Создать SQL запрос из разных баз (SQL и Excel)  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
o-o
MacaronicTragedy = SQL2008?

аксиома Эскобара :)
22 мар 17, 15:52    [20321761]     Ответить | Цитировать Сообщить модератору
 Re: Создать SQL запрос из разных баз (SQL и Excel)  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
по сабжу: возьмите АКСЕСС. Он прекрасно умеет делать запросы между линкованными таблицами.
Тем более, что к настройкам сервера для создания линкед-сервера доступа нет.
22 мар 17, 15:58    [20321809]     Ответить | Цитировать Сообщить модератору
 Re: Создать SQL запрос из разных баз (SQL и Excel)  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
1. Поднимаете у себя кокой-нить EXPRESS\DEV
2. Поднимаете линк на ваш пром под свой логин
3. Творите внутри всё что хотите
4. Профит. Занавес.
И всё разваливается на запрете установки приложений :)
22 мар 17, 16:05    [20321847]     Ответить | Цитировать Сообщить модератору
 Re: Создать SQL запрос из разных баз (SQL и Excel)  [new]
o-o
Guest
Beliy443
сторонние программы нет возможности устанавливать
22 мар 17, 16:38    [20322014]     Ответить | Цитировать Сообщить модератору
 Re: Создать SQL запрос из разных баз (SQL и Excel)  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
o-o,

тогда джоинить в уме :)
22 мар 17, 16:39    [20322021]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить