【发布时间】:2020-04-15 14:44:18
【问题描述】:
好的,所以我有一个 Power Query,它使用一个函数从 Excel 工作表中获取参数并输出一个值。它工作正常。在这个特定的查询中有三个这样的参数,都在 WHERE 部分。
SELECT
*
FROM AcctHist
WHERE FiscYr LIKE '2019'
AND LedgerID LIKE 'Actual'
AND CpnyID LIKE 'NAH'
如果我使用硬值,则查询工作正常。如果我使用 FiscYr 列的参数,它工作正常。如果我将参数用于 LedgerID 或 CpnyID,查询将返回“无效列”错误。这是 Power Query 高级编辑器中查询的样子:
let
Year = Text.From(fnGetParameter("Year")),
Ledger = Text.From(fnGetParameter("Ledger")),
Fund = Text.From(fnGetParameter("Fund")),
Source = Sql.Database(("Server"), ("Database"), [Query="SELECT#(tab)#(lf)#(tab)*#(lf)FROM#(tab)#(lf)#(tab)AcctHist#(lf)WHERE#(tab)#(lf) FiscYr LIKE '2019' AND#(lf) LedgerID LIKE 'Actual' AND#(lf) CpnyID LIKE 'NAH'"])
in
Source
正如所写,这工作正常,并为我提供了我需要的报告。
将 '2019' 更改为 "&Year&" 输入指定的参数(在本例中为 2019)并且查询仍然可以正常工作
以完全相同的方式更改 'Actual' 或 'NAH' 会给我“无效列”错误。
为什么会这样,我能做些什么来解决它?
谢谢! :)
【问题讨论】:
标签: sql parameter-passing powerquery