Power BI中的M(Power Query),将参数从列表传递到SQL语句

时间:2020-08-05 18:35:16

标签: powerbi powerquery m

我有一个Oracle数据库,其中包含1000多个项目和数百万条详细记录。我一次只需要查询大约6个项目。我试图编写一个M表达式以将我在一个表中拥有的5个或6个项目(称为“项目”)作为Where子句传递给我的查询。该查询看起来不错,完美的SQL语法,但有错误。我正在使用一个函数... fnGetProjects见下文。

() =>
let
    Source = "'" & Text.Combine(Projects,  "', '") & "'"
in
    Source

这是我的查询。

let
    WhereClause = fnGetProjects(),
    Source = Oracle.Database("gtmb", [HierarchicalNavigation=true, Query="SELECT  p.Proj_ID, p.Proj_Description, p.Proj_Name FROM Project_YTD p where p.Proj_ID IN ("& WhereClause &")"])
in
    Source 

这是我的错误信息...

Formula.Firewall:查询“ MyProjects(2)”(步骤“源”)引用 其他查询或步骤,因此它可能不会直接访问数据源。 请重建此数据组合。

我怀疑它与优先级有关...但是我认为我使用函数阅读可以解决问题。我以各种形式使用表和参数尝试了此操作,但是没有运气。查询所有项目会使我的最终用户等待太久。

任何帮助表示赞赏。

谢谢

迈克

1 个答案:

答案 0 :(得分:0)

进入文件,然后进入“ 选项和设置”文件。

在其中进入“ 数据源设置

点击“ 编辑权限”。

Sele

在编辑权限中,选择“ ”作为“隐私级别”。

enter image description here

然后它应该工作。