Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerquery 如何将用户参数添加到电源查询中_Powerquery - Fatal编程技术网

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

Powerquery 如何将用户参数添加到电源查询中,powerquery,Powerquery,我正在努力将用户参数添加到电源查询中 没有参数的查询代码如下所示: let Source = PostgreSQL.Database("host", "user", [Query="select * from analysis where as_of_date > CURRENT_DATE - INTERVAL '3 day'"]) in Source 如何使用附加的用户输入参数删除硬代码3 let Source = (daysBac

我正在努力将用户参数添加到电源查询中

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

 let
    Source = PostgreSQL.Database("host", "user", [Query="select * from analysis where as_of_date > CURRENT_DATE - INTERVAL '3 day'"])
in
    Source  
如何使用附加的用户输入参数删除硬代码3

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

            Source

我已经查看了在工作簿中创建表tParameters(包含列“Days”)中查找正确语法的规范。 在第一行中输入您的值

此代码可能包含错误,因为我附近没有PostgreSQL server。:)

此外,它可能会产生数据隐私错误。然后,您只需关闭数据隐私,或者将步骤“天”移动到名为“天”的单独查询中,然后为数据库和当前工作簿设置数据隐私级别

 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

这个答案是可行的,但要注意,如果允许坏人将
daysBack
更改为邪恶的内容,您的数据库就有遭受SQL注入攻击的风险。您可以改为使用M编写相同的行过滤器。而这个代码片段可能会解决这个问题,包括一个用于提高文章质量的解释。记住,你是在将来回答读者的问题,而不仅仅是现在提问的人!请在回答中添加解释,并说明适用的限制和假设。