快速技巧,Power BI Desktop,查询参数,第4部分,将Power Query参数值传递到SQL 服务器存储过程

我过去写过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 BI Desktop中的SQL语句从SQL 服务器获取数据
  • 请点击 转换资料
在Power BI Desktop中转换数据

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

在Power BI Desktop中创建新的查询参数

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

这是更改代码之前的Power Query表达式的屏幕截图:

Power BI桌面中Power Query Editor中的公式栏中的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语句进行参数化。

请享用!

有什么想法吗?在这里与我们分享:

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.