我正在尝试将参数传递给存储过程,以将数据从MSSQL源检索到Power BI数据集,该数据集接受特定值作为输入。
请参考下表:
Label | Value
---------+-------
Male | M
Female | F
我想在报告刷新提示上的标签中显示该值,同时将值字段中的值传递给存储过程
存储过程不接受标签字段中的值。
有人解决此问题吗?
答案 0 :(得分:0)
您可以使用所有可能的标签值(即Male
和Female
)的值列表创建文本参数:
制作一个包含参数值的表。从Blang query
获取数据:
并使用如下表达式:
= #table({"EmployeeGender"},{{#"EmployeeGender"}})
然后从数据库中获取数据,但是使用CASE
这样的表达式将参数值(标签值)转换为数据库值(实际值):
case {PARAMETER} when 'Male' then 'M' when 'Female' then 'F' end
或在M:
= Sql.Database("SERVERNAME", "DATABASENAME", [Query="select * from dbo.SelectEmployees(case '" & EmployeeGender & "' when 'Male' then 'M' when 'Female' then 'F' end)"])
使用&
可以连接字符串,EmployeeGender
是参数的名称,该参数的名称将替换为它的值(Male
或Female
),然后是SQL Server将执行case
语句以将“标签值”解码为“实际值”(即M
或F
)。
然后将查询返回的结果和帮助程序表的内容放入报告中。更改参数值时,您只会看到数学当前参数值的那些行,并会看到适当的标签: