我很想将用户参数添加到电源查询中。
我没有参数的查询代码如下所示:
let
Source = PostgreSQL.Database("host", "user", [Query="select * from analysis where as_of_date > CURRENT_DATE - INTERVAL '3 day'"])
in
Source
如何使用其他用户输入参数删除硬编码3?
答案 0 :(得分:0)
在工作簿中创建一个表tParameters,其中包含“Days”列。 在第1行输入您的值。
此代码可能包含错误,因为我附近没有PostgreSQL服务器。 :)
此外,它可能会生成数据隐私错误。然后,您只需关闭数据隐私,或将“Days”步骤移动到单独的查询 命名为“Days” ,并为您的数据库和当前工作簿设置数据隐私级别
let
Source = PostgreSQL.Database("host", "user"){[Schema = "dbo", Item = "analysis"]}[Data],
Days = Excel.CurrentWorkbook(){[Name="tParameters"]}[Content]{0}[Days],
FilterRows = Table.SelectRows(Source, each [as_of_date] > DateTime.Date(DateTime.LocalNow()) - Days)
//if CURRENT_DATE is not a current date on local(!) system, but a field, then
// FilterRows = Table.SelectRows(Source, each [as_of_date] > [CURRENT_DATE] - Days)
//Never use native queries unless there is absolutely no other way.
in
FilterRows
答案 1 :(得分:-1)
let
Source = (daysBack)=>PostgreSQL.Database("host", "user", [Query="select * from analysis where as_of_date >
CURRENT_DATE - INTERVAL ' " & Text.From(daysBack)& " day'"])
in
Source
我已经查看了在https://msdn.microsoft.com/en-us/library/mt299038.aspx
找到正确语法的规范