power query和mysql_在PowerQuery连接MySQL的语句中使用自定义变量的方法

本文介绍了在PowerQuery中连接MySQL时如何使用自定义变量来简化SQL语句的修改。作者通过设置SQL变量尝试解决在查询中频繁更改时间范围的问题,但初始方法导致错误。最终,通过在SQL语句中为变量加引号,如`set @'Time_Start' = '2018-09-10';`,成功实现了需求。文章分享了解决过程和完整案例。
摘要由CSDN通过智能技术生成

最近尝试在PowerQuery查询MySQL时使用自定义变量,同样添加变量的SQL语句在Navicat可以正常执行,但在PowerQuery里面就会报错,今天解决了这个问题,方法是给变量加引号(文章末尾有完整案例)。

这个方案百度没搜到(也可能是没注意到),用谷歌搜索才意外发现2个相关的英文链接,在这里记录一下过程。

需求场景:平时使用PowerQuery查询分析比较多,每次分析新问题需要修改Excel模板查询SQL语句的开始时间和截止时间,因为是用union合并两张表的数据,所以得修改4个位置,虽然也不算多,但在SQL语句略长的情况下,查询界面手工修改日期有点不方便,然后就有了添加SQL变量放在前面的想法,这样开始时间和截止时间就只需修改1次了。

经历过程:

起初,直接使用MySQL自定义变量“SET+@变量”的方法没成功:

SET @Time_Start = '2018-09-10';

SET @Time_End = '2018-12-24';

PowerQuery报错的提示如下:DataSource.Error: MySQL: Fatal error encountered during command execution.

详细信息:

DataSourceKind=MySql

DataSourcePath=localhost:3306;data_xx

Message=Fatal error encountered during command execution.

ErrorCode=-2147467259

百度搜索时,发现有人在其它场景遇到过同样的提示,说是需要配置以允许使用自定义变量(参数如下),但添加到PowerQuery的“高级编辑器”里面的连接参数位置,发现并无效果(会提示新的错误,也没有其它合适的位置),一直没有找到针对PowerQuery的解决方案。

Allow User Variables=True

后来,使用谷歌搜索时,跟PowerQuery相关的结果也比较少,意外发现有人在PowerBI官网咨询同样的问题但解决方案参考链接指向了另一个网站,还有一点意外的是答复方案的时间是2017年而发布问题是在2013年。

SQL案例:set @'Time_Start' = '2018-09-10';

set @'Time_End' = '2018-12-24';

select * from data_ax where time_1 >= @'Time_Start' and time_1 < @'Time_End'

union

select * from data_bx where time_2 >= @'Time_Start' and time_2 < @'Time_End'

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值