Sql Power查询包含参数的列无效

Sql Power查询包含参数的列无效,sql,parameter-passing,powerquery,Sql,Parameter Passing,Powerquery,好的,我有一个Power查询,它使用一个函数从Excel工作表中获取一个参数并输出一个值。它很好用。在这个特定的查询中有三个这样的参数,都在WHERE部分 SELECT * FROM AcctHist WHERE FiscYr LIKE '2019' AND LedgerID LIKE 'Actual' AND CpnyID LIKE 'NAH' 如果使用硬值,查询工作正常。如果我对FiscYr列使用该参数,它可以正常工作。如果我对LedgerID或CpnyID使用该参数,查询将返回

好的,我有一个Power查询,它使用一个函数从Excel工作表中获取一个参数并输出一个值。它很好用。在这个特定的查询中有三个这样的参数,都在WHERE部分

SELECT 
* 
FROM AcctHist 
WHERE FiscYr LIKE '2019' 
AND LedgerID LIKE 'Actual' 
AND CpnyID LIKE 'NAH'
如果使用硬值,查询工作正常。如果我对FiscYr列使用该参数,它可以正常工作。如果我对LedgerID或CpnyID使用该参数,查询将返回一个“Invalid Column”错误。以下是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'
会出现“Invalid Column”错误。
它为什么要这样做,我能做些什么来修复它?

谢谢!:)

如果从“2019”到“&Year&”的更改正好是这样,那么SQL是可以的,因为它将2019作为一个数字(因为结果没有被单个tic包围)。 如果您忘记了其他值上的单个TIC,查询引擎将查找名为Ledger或Fund的列

如果此断言正确,则您的“not working”where子句如下所示:

WHERE FiscYr LIKE " & Year & "
AND LedgerID LIKE " & Ledger & "
AND CpnyID LIKE " & Fund & "
但应该是

WHERE FiscYr LIKE " & Year & "
AND LedgerID LIKE '" & Ledger & "' --note the single tics just inside of the double-quotes
AND CpnyID LIKE '" & Fund & "'

太谢谢你了!我知道这是一件很小的事情,但我自学了所有这些,我就是无法控制它。