
我过去写过3篇关于查询参数的博文。
这是快速提示形式的第四篇。这是场景。我的一位客户要求从SQL 服务器的存储过程中获取数据。她需要将值从“查询参数”传递回SQL 服务器,并在Power BI中获得结果。
解决方案有点简单。我在中创建了一个简单的存储过程 AdventureWorksDW2019 如下:
CREATE PROCEDURE SP_Sales_by_Date
@date 在t
AS
BEGIN
SET NOCOUNT ON;
SELECT *
FROM [dbo].[FactInternetSales]
WHERE OrderDateKey >= @日期
END
GO
在Power BI Desktop中,从SQL 服务器获取数据,然后:
- 输入 服务器 名称
- 输入 数据库 名称
- 选择 数据连接模式
- 展开 高级选项
- 输入一个 SQL语句 调用存储过程,如下所示:
exec SP_Sales_by_Date @日期 = 20140101
- 点击确定

- 请点击 转换资料

现在我们需要创建一个查询参数。在我的示例中,我创建了一个 日期键 在 小数 数据类型:

此时,您必须从以下位置修改Power Query表达式: 公式栏 或来自 高级编辑。我们截断T-SQL语句后 @日期,然后将查询字符串与查询参数名称连接起来。如果查询参数数据类型不是 文本 然后我们必须将其转换为 文本。在我的示例中,数据类型为 数,所以我用 文本.From() 功能。
这是更改代码之前的Power Query表达式的屏幕截图:

功率查询表达式为:
Sql.Database(".\sql2019", "AdventureWorksDW2019", [Query="exec SP_Sales_by_Date @日期 = 20140101"])
- 更改代码如下:
Sql.Database(".\sql2019", "AdventureWorksDW2019", [Query="exec SP_Sales_by_Date @日期 " & 文本.From(DateKey)])
- 单击编辑权限

- 点击运行

- 那’是的。结果如下:

我们可以使用此方法在Power BI中使用查询参数对其他任何T-SQL语句进行参数化。
请享用!