MySQL для EXCEL (2010) - Пользовательский запрос выбора

1275
MrsAdmin

У меня включена надстройка MySQL для Excel (MS E: 2010) (самая последняя версия).
Я проверил свое соединение с сервером (не локальным), и все отлично, но я не вижу нигде, чтобы написать / вставить пользовательский запрос SQL Select для извлечения данных из разных таблиц, а не только из одной таблицы.

Это не возможно?

2 дополнительных варианта:
1) я смог использовать соединитель базы данных и добавить свой сервер (через мастер ODBC), однако я продолжаю получать синтаксические ошибки, и я понятия не имею, почему мой синтаксис отлично работает в MySQL Workbench (я пробовал с обоими вариантами ANSI и Unicode).

2) Запустите VBAмакрос для запуска .batфайла, который запустит my .sql scriptв MySQL Workbench, для запуска Query и сохранения на жесткий диск в .csv или .txt

3) (с тех пор я получил часть работы сегодня), запустил макрос VBA с MS Power Query, отчет готов, но он не запишет макрос для автоматизации. :(

Это мои 3 (4) варианта, и каждый не работает. Какой лучше всего подходит?

Приветствия.

Вот пример моего SELECTзапроса:

USE `store_cart`; Select  T5.orders_id As OID, DATE_FORMAT(T5.date_purchased, '%Y-%m-%d') As ODate, T3.products_name As PName, T3.products_id As PID, T2.products_quantity As Qty, T2.products_price As PrOrig, T5.currency As Cur, "1" As CurVal, (select PrOrig) * (select CurVal) as PrBase, From /*PREFIX*/products T1 Left Join /*PREFIX*/orders_products T2 On (T1.products_id = T2.products_id) Inner Join /*PREFIX*/orders T5 On (T5.orders_id = T2.orders_id) Inner Join /*PREFIX*/products_description T3 On (T1.products_id = T3.products_id) Left Join /*PREFIX*/products_to_categories P2 On (T3.products_id = P2.products_id) Inner Join /*PREFIX*/customers T6 On T5.customers_id = T6.customers_id Left Join /*PREFIX*/paypal P1 On (P1.order_id = T5.orders_id) Left Join /*PREFIX*/manufacturers T4 On (T1.manufacturers_id = T4.manufacturers_id) Left Join /*PREFIX*/group_pricing g1 On T6.customers_group_pricing = g1.group_id  Left Join /*PREFIX*/orders_status O1 On (O1.orders_status_id = T5.orders_status) 
2

1 ответ на вопрос

1
agtoever

After installation of MySQL for Excel, startup Excel, go to the "Data" ribbon and on the right you should see a "MySQL for Excel" button. That should be the best (and preferred) way to connect to a MySQL database, using MySQL for Excel.

MySQL for Excel

If you need to aggregate data from different tables, the best place to do that is in the database. Create a view there (MySQL has a Workbench that lets you do such things quite intuitively) and use that view as a basis for your Excel report. The advantage is that everyone now has access to that aggregated data. Also: databases are optimized to do things as aggregating data.

Спасибо, это то, что я хочу использовать, однако я не могу запустить свой пользовательский запрос, который извлекает данные из более чем одной таблицы. Я не хочу импортировать 5 таблиц, чтобы потом объединить их в Excel. Нет ли способа заставить MySQL для Excel выполнить пользовательский запрос из нескольких таблиц? Я не думаю, что есть. :( MrsAdmin 9 лет назад 0
Наиболее логичным решением было бы создание представления в базе данных, которую вы используете. agtoever 9 лет назад 0
К сожалению, возникает вопрос .. как или хотя бы где? Заранее спасибо: D [править] Я нашел информацию о том, как, но где лучшее место? на моем сервере? это вне моей лиги, я думаю :( MrsAdmin 9 лет назад 0
Это мой вопрос, хотя - как мне сделать то, что мне нужно, ваш ответ уже говорит мне о том, что я уже знаю, - мой вопрос, как реализовать это, о чем я только что спросил. :( MrsAdmin 9 лет назад 0
У вас есть доступ к серверу sql и разрешено ли вам создавать представление в базе данных? agtoever 9 лет назад 1
Спасибо за ваше руководство, я нашел, как это сделать в MySQL Workbench и смог увидеть `view` в Excel, сейчас я получаю ошибки, хотя,` System.Byte [] `, я могу начать новый вопрос для это хотя. Я знаю, почему есть ошибка (это столбец, основанный на расчетах), я не знаю, как ее исправить. Если вы отредактируете свой ответ, я отмечу его как ответивший и напишу следующий вопрос, спасибо :) MrsAdmin 9 лет назад 0
Здорово, что ты (частично) там. Я добавил параграф о создании представления и рабочей среды MySQL. Извините, если я был немного тупым в моих предыдущих (теперь удаленных) комментариях. agtoever 9 лет назад 1
Спасибо за ваше время, я ценю вашу помощь. Спасибо и никаких извинений не требуется. :) MrsAdmin 9 лет назад 0