首页 > 解决方案 > 使用参数限制使用 Power Query 提取的数据

问题描述

我有一个 Power Query,它从一个非常大的表(超过一百万行)中提取数据。当我尝试添加一个参数时,无论我把它放在查询中的哪个位置,查询都会拉取整个表,然后根据参数对其进行过滤。提取所有信息需要整整一分钟,所以我的问题是:

有没有办法构建 Power Query,使其仅根据参数而不是整个表提取我想要的数据?

谢谢!:)

连接正在使用 Excel 的 Get Data 函数,并且参数正在作为过滤器的一部分输入

下面是查询类型的示例,其中 BegPer 和 EndPer 是开始和结束参数:

let
Source = Sql.Databases("TIRPROD-MIRROR"),
SLZZZAPP = Source{[Name="SLZZZAPP"]}[Data],
dbo_AcctHist = SLZZZAPP{[Schema="dbo",Item="AcctHist"]}[Data],
#"Changed Type" = Table.TransformColumnTypes(dbo_AcctHist,{{"FiscYr", Int64.Type}}),
#"Filtered Rows" = Table.SelectRows(#"Changed Type", each [FiscYr] >= BegPer and [FiscYr] <= EndPer)

在#“过滤的行”中

标签: parameterspowerquery

解决方案


是的,您可以连接到 SQL Server,然后在“高级选项”下插入您的 SQL 语句。然后,创建一个参数。之后,编辑您的查询步骤,在 SQL 连接中您将看到您的查询,您可以修改并插入您想要的参数。

请参阅高级查询编辑器中的此示例:

let
    Source = Sql.Database("my_server", "my_database", [Query="SELECT *  FROM [my_database]. 
       [dbo].[table1] Where column1 = '" & parameter & "'"])
in
    Source

语法很奇怪,所以你必须尝试一下。请参阅此内容: https ://community.powerbi.com/t5/Desktop/How-do-I-pass-parameters-to-my-SQL-statement/td-p/118716

https://channel9.msdn.com/Blogs/MVP-Azure/Pass-parameter-to-SQL-Queries-statement-using-Power-BI


推荐阅读