在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的初学者。