【问题标题】:Power Query to Select Columns from resuting table of Join QueryPower Query 从联接查询的结果表中选择列
【发布时间】:2019-03-28 07:28:33
【问题描述】:

我在 Power BI 中使用 power 查询,我有两个表,我在这两个表上完成了内部联接并在联接表中展开了一列。

let
Source = Table.NestedJoin(Sales,{"CustomerId"},Customer,{"Id"},"Customer",JoinKind.Inner),
#"Expanded Customer" = Table.ExpandTableColumn(Source, "Customer", {"Country"}, {"Customer.Country"})
in
   #"Expanded Customer"

这个显示来自 Customer 表的 sales 和 country 列的所有列。

我要做的是显示销售和国家/地区的销售 ID 列 来自客户的列。

我尝试了以下代码,但似乎不起作用。

Table.SelectColumns(Source, "Customer.Country", "SaleId" )

我必须只使用 Power 查询,没有 DAX 语法。

感谢您的帮助。

【问题讨论】:

    标签: powerquery powerbi-desktop


    【解决方案1】:

    正如 teylyn 所说,您应该能够通过 GUI 轻松完成此操作。

    它不起作用的原因是您指的是Customer.Country 列尚未扩展的第一步。您需要改为引用#"Expanded Customer" 步骤。

    Table.SelectColumns(#"Expanded Customer", "Customer.Country", "SaleId")
    

    那么您的整个代码将如下所示:

    let
        Source = Table.NestedJoin(Sales,{"CustomerId"},Customer,{"Id"},"Customer",JoinKind.Inner),
        #"Expanded Customer" = Table.ExpandTableColumn(Source, "Customer", {"Country"}, {"Customer.Country"}),
        #"Select Columns" = Table.SelectColumns(#"Expanded Customer", "Customer.Country", "SaleId" )
    in
        #"Select Columns"
    

    【讨论】:

    • 我做了一些阅读,结果发现如果不扩展它们就无法访问嵌套表/查询中的列。
    • 对。这正是我所说的。
    【解决方案2】:

    您是否尝试从头开始编写代码?反对使用功能区命令来实现您想要的功能?

    您的代码将不起作用,因为 Source 项目没有 Customer.Country 列。仅在下一步中添加。

    使用功能区帮助您找出语法:

    作为查询编辑器的最后一步,选择不需要的列并将其删除。在 Power Query 中,很多事情都是在连续的步骤中发生的,而不是在一个复杂的公式中。这可能会使代码更长一些,但更容易理解和排除故障。

    【讨论】:

    • 我正在尝试从头开始编写它。不反对使用功能区命令,但尝试学习电源查询和 DAX。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-18
    • 2012-01-03
    • 2016-09-06
    • 2012-11-30
    • 1970-01-01
    • 2016-07-21
    相关资源
    最近更新 更多