如何将用户参数添加到电源查询中

时间:2016-10-27 07:40:35

标签: powerquery

我很想将用户参数添加到电源查询中。

我没有参数的查询代码如下所示:

 let
    Source = PostgreSQL.Database("host", "user", [Query="select * from analysis where as_of_date > CURRENT_DATE - INTERVAL '3 day'"])
in
    Source  

如何使用其他用户输入参数删除硬编码3?

2 个答案:

答案 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

找到正确语法的规范