如何重建数据组合Power Query

时间:2016-05-05 14:23:19

标签: powerquery

在Power Query中,我想使用一个查询中的不同值列表(例如“Sales”表中的客户列表),将其注入另一个查询的SQL语句(例如“Customer”维度表)

要提取不同值的列表,我有一个函数,getDistinct():

  1. 从查询选项中检索一列
  2. 仅保留该列上的不同值,
  3. 返回以逗号分隔的这些不同值,以便可以在SQL语句中注入它们。
  4. 此功能适用于独立查询。但是,当我尝试在我的“客户”查询中使用它时会抛出错误(请参阅下面的代码和错误):

    let
        Source = Oracle.Database("myServer", [Query="select * from db_customer where customer_id in (" & getDistinct(Sales,"CustomerID") & ")"])
    in
        Source
    

    错误:

      

    Formula.Firewall:查询'客户'(步骤'来源')参考   其他查询或步骤,因此它可能无法直接访问数据源。   请重建此数据组合。

    我尝试创建一个执行该函数的不同查询,然后在我的“客户”查询中引用它,但这似乎不起作用。我知道我可以“忽略隐私级别”(顺便说一下,我已经检查过并且有效),但由于我不知道它的含义,我害怕泄露的数据。

1 个答案:

答案 0 :(得分:3)

我不明白为什么函数或任何手写代码对于这个要求是必要的。

我会创建一个Query来获取Sales表,然后创建Group by CustomerID。我会将其设置为:加载到/仅创建连接。

然后,客户查询就是:

  1. 来源是Oracle客户表
  2. 合并到CustomerID上的销售查询,Join Kind = Inner