Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/сцепить (Left Join) несколько таблиц, VBA Excel - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » сцепить (Left Join) несколько таблиц, VBA Excel (Макросы Sub)
сцепить (Left Join) несколько таблиц, VBA Excel
Ю.В Дата: Пятница, 29.11.2013, 17:19 | Сообщение № 1
Группа: Гости
Доброго денечка.
Соединяю 5 таблиц с помощью Left Join. Запрос формируется и выполняется VBA Excel. Строка подключения:
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=""" & strFilePath & """;Extended Properties=""Excel 12.0;HDR=yes"";"
(строка рабочая, проверено не раз)

Есть ограничения с количеством объединений в одном таком запросе?

мой неработающий запрос:
[vba]
Код

Select * from
(select Row as Поставщик_Row , Fact as Поставщик_Fact, Type as Поставщик_Type
from Stake where Range = 'Sheet1' AND Type = 'Поставщик') [myПоставщик]
LEFT JOIN
(select Row as Количество_Row , Fact as Количество_Fact, Type as Количество_Type
from Stake where Range = 'Sheet1' AND Type = 'Количество') [myКоличество]
on [myПоставщик].Поставщик_Row = [myКоличество].Количество_Row

Left Join
(select Row as Товар_Row , Fact as Товар_Fact, Type as Товар_Type
from Stake where Range = 'Sheet1' AND Type = 'Товар') [myТовар]
on [myПоставщик].Поставщик_Row = [myТовар].Товар_Row

Left Join
(select Row as Клиент_Row , Fact as Клиент_Fact, Type as Клиент_Type
from Stake where Range = 'Sheet1' AND Type = 'Клиент') [myКлиент]
on [myПоставщик].Поставщик_Row = [myКлиент].Клиент_Row

Left Join
(select Row as Адрес_Row , Fact as Адрес_Fact, Type as Адрес_Type
from Stake where Range = 'Sheet1' AND Type = 'Адрес') [myАдрес]
on [myПоставщик].Поставщик_Row = [myАдрес].Адрес_Row
[/vba]
 
Ответить
СообщениеДоброго денечка.
Соединяю 5 таблиц с помощью Left Join. Запрос формируется и выполняется VBA Excel. Строка подключения:
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=""" & strFilePath & """;Extended Properties=""Excel 12.0;HDR=yes"";"
(строка рабочая, проверено не раз)

Есть ограничения с количеством объединений в одном таком запросе?

мой неработающий запрос:
[vba]
Код

Select * from
(select Row as Поставщик_Row , Fact as Поставщик_Fact, Type as Поставщик_Type
from Stake where Range = 'Sheet1' AND Type = 'Поставщик') [myПоставщик]
LEFT JOIN
(select Row as Количество_Row , Fact as Количество_Fact, Type as Количество_Type
from Stake where Range = 'Sheet1' AND Type = 'Количество') [myКоличество]
on [myПоставщик].Поставщик_Row = [myКоличество].Количество_Row

Left Join
(select Row as Товар_Row , Fact as Товар_Fact, Type as Товар_Type
from Stake where Range = 'Sheet1' AND Type = 'Товар') [myТовар]
on [myПоставщик].Поставщик_Row = [myТовар].Товар_Row

Left Join
(select Row as Клиент_Row , Fact as Клиент_Fact, Type as Клиент_Type
from Stake where Range = 'Sheet1' AND Type = 'Клиент') [myКлиент]
on [myПоставщик].Поставщик_Row = [myКлиент].Клиент_Row

Left Join
(select Row as Адрес_Row , Fact as Адрес_Fact, Type as Адрес_Type
from Stake where Range = 'Sheet1' AND Type = 'Адрес') [myАдрес]
on [myПоставщик].Поставщик_Row = [myАдрес].Адрес_Row
[/vba]

Автор - Ю.В
Дата добавления - 29.11.2013 в 17:19
AndreTM Дата: Пятница, 29.11.2013, 23:12 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
Попробуйте задать алиасы для подзапросов - и в условиях соединения использовать алиас (плюс правильно расставить скобки):
((SELECT .... ) t1 LEFT JOIN (SELECT ... ) t2 ON t2... = t1...) t12 LEFT JOIN (SELECT ....) t3 ON t12... = t3...


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
СообщениеПопробуйте задать алиасы для подзапросов - и в условиях соединения использовать алиас (плюс правильно расставить скобки):
((SELECT .... ) t1 LEFT JOIN (SELECT ... ) t2 ON t2... = t1...) t12 LEFT JOIN (SELECT ....) t3 ON t12... = t3...

Автор - AndreTM
Дата добавления - 29.11.2013 в 23:12
Мир MS Excel » Вопросы и решения » Вопросы по VBA » сцепить (Left Join) несколько таблиц, VBA Excel (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!