我有MySQL 和 Excel(MS E:2010)插件已启用(最新版本)。
我测试了与服务器(非本地)的连接,一切正常,但是我找不到任何地方可以编写/插入自定义 SQL 选择查询来从不同的表(而不仅仅是 1 个表)中提取数据。
这不可能吗?
另外 2 个选项:
1) 我已经能够使用数据库连接器并添加我的服务器(通过 ODBC 向导),但是我一直收到语法错误,而且我不知道为什么,因为我的语法在 MySQL Workbench 中运行良好(我已经尝试使用 ANSI 和 Unicode 选项)。
2)运行VBA
宏来触发.bat
文件,该文件将启动我.sql script
的 MySQL Workbench,运行查询,并以 .csv 或 .txt 格式保存到硬盘
3)(今天我有一部分工作要做),使用 MS Power Query 运行 VBA 宏,报告很准确,但是它不会记录宏用于自动化。:(
这是我的 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)
答案1
安装 MySQL for Excel 后,启动 Excel,转到“数据”功能区,在右侧您应该会看到“MySQL for Excel”按钮。这应该是使用 MySQL for Excel 连接到 MySQL 数据库的最佳(也是首选)方式。
如果您需要聚合来自不同表的数据,那么最好的地方就是数据库。在那里创建一个视图(MySQL 有一个 Workbench,可以让您非常直观地执行此类操作),并使用该视图作为 Excel 报告的基础。这样做的好处是现在每个人都可以访问该聚合数据。此外:数据库经过优化,可以执行聚合数据等操作。