在2022年4月份的PowerBI版本更新中,动态M查询参数功能已普遍可用,这意味着此功能可以正式投入到项目开发中了。
对于很多小伙伴来说,此功能从字面意思不难理解,但是不知道实际应用的效果如何。
本期白茶会分享动态M查询参数在PoweBI中的应用。
先来看看本期的案例数据:
在白茶本机的数据库中,存在名为“CaseData”的数据库,存在名为"Fact_Sales"的事实表。数据相对而言比较简单,表结构并不复杂。
例子:通过动态M查询参数,实现SQL条件参数化。
数据连接:
使用动态M查询参数的前提是,数据源需要为直连模式,我们需要通过直连的方式,将"Fact_Sales"导入到PowerBI中。
编写如下SQL查询语句:
SELECT *, YEAR(Date) AS YEAR FROM Fact_Sales
此界面点击确定后,会提示输入数据凭证,小伙伴可根据情况自行输入。
结果如下:
选择“转换数据”,进入到Power Query界面。
添加参数:
要实现SQL条件参数化,我们首先要有一个参数,点击面板上的“管理参数”,选择“新建参数”。
这里白茶将其命名为“Data”,数据类型为“文本”,当前值则随机填写“2021”。
在导航面板上,将参数面板的“始终允许”勾选上。
修改查询:
到这里,我们的准备工作已经完成,白茶的目标是将SQL的条件查询参数化,例如,将“Year”字段添加为条件,并将其参数化。
在查询1中,找到面板上的高级编辑器按钮,点击进入。
在此界面,可以看到白茶之前输入的SQL查询语句。
添加Year字段作为条件筛选,修改M查询语句如下:
let
源 = Sql.Database("127.0.0.1", "CaseData", [Query="SELECT *, YEAR(Date) AS YEAR#(lf)FROM Fact_Sales#(lf) WHERE YEAR(Date)=" & Data])
in
源
选择完成。
会出现如下界面,点击编辑权限,重新运行即可。
选择面板上的关闭并应用即可。
新建一张表:
接下来,我们需要新建一张表,将其与M查询参数进行绑定。
选择输入数据。
点击加载,会提示潜在的安全风险,忽略,点击确定即可。
进入到数据建模界面,选择我们刚才添加的字段,在属性面板的高级选项中,选择绑定参数。
依然会提示潜在风险,忽略,点击继续即可。
到这里,我们的所有操作已经完成,我们在画布界面添加切片器,查看一下最终效果。
这里是白茶,一个PowerBI的初学者。