【发布时间】:2019-12-12 00:34:20
【问题描述】:
我有一个 Power Query,它从一个非常大的表(超过一百万行)中提取数据。当我尝试添加参数时,无论我把它放在查询中的哪个位置,查询都会拉取整个表,然后根据参数对其进行过滤。提取所有信息需要整整一分钟,所以我的问题是:
有没有办法构建 Power Query,使其仅根据参数提取我想要的数据,而不是整个表?
谢谢! :)
连接正在使用 Excel 的获取数据功能,并且参数正在作为过滤器的一部分输入
下面是查询类型的示例,其中 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)
在 #"过滤的行"
【问题讨论】:
-
您使用的是哪种连接方式?你是怎么设置参数的?请举例说明你在做什么。对于大多数数据库连接器,PQ 应该能够在后端转换为 SQL,因此它返回的唯一数据是该查询的结果。但是,如果您通过 ODBC 在某些东西上运行,它就无法做到这一点,您唯一的选择是将单个初始自定义 SQL 查询作为字符串发送。
-
我编辑了我的问题以添加更多信息。我大部分都是自学的,所以我做事的方式可能看起来有点奇怪。
标签: parameters powerquery