Power Query Invalid Column с параметром - PullRequest
0 голосов
/ 15 апреля 2020

ОК, так что у меня есть 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' точно таким же образом приводит к ошибке «Неправильный столбец».
Почему это происходит? это, и что я могу сделать, чтобы это исправить?
Спасибо! :)

1 Ответ

0 голосов
/ 24 апреля 2020

Если изменение с «2019» на «& Year &» именно так, то SQL в порядке, потому что он принимает 2019 в качестве числа (потому что результат не окружен одиночными тиками) , Если вы забудете об отдельных тиках для других значений, механизм запросов будет искать столбцы с именем Ledger или Fund.

Если это утверждение верное, ваше «не работает» выражение 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 & "'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...