强大的查询功能,可从联接查询的重排表中选择列

时间:2018-10-24 00:34:17

标签: powerquery powerbi-desktop

我在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"

这将显示“销售”表中的所有列以及“客户”表中的“国家/地区”列。

我想做的是显示销售和国家/地区中的销售ID列 客户”列。

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

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

我只能使用Power查询来执行此操作,而不能使用DAX语法。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

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

您的代码无法使用,因为Source项没有Customer.Country列。只会在下一步中添加。

使用功能区可以帮助您确定语法:

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

答案 1 :(得分: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"