我有一个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)”(步骤“源”)引用 其他查询或步骤,因此它可能不会直接访问数据源。 请重建此数据组合。
我怀疑它与优先级有关...但是我认为我使用函数阅读可以解决问题。我以各种形式使用表和参数尝试了此操作,但是没有运气。查询所有项目会使我的最终用户等待太久。
任何帮助表示赞赏。
谢谢
迈克