我有3张桌子。
第一个是产品表
第二个也是产品表,但第一个产品也存在。
最后,我有一张销售表。
我想将两个产品表合并为一个新产品表,如果一个产品位于“Sales”中,则添加一个带有客户端名称的新列。
这种结果。
我想在Power BI中执行此操作,但我找不到在查询编辑器中执行此操作的解决方案。
有什么想法吗?
感谢。
答案 0 :(得分:4)
这里我假设ID
是表格中的主键。
首先,您可以将两个Product
表附加(即联合)到一个表中:
然后,删除ID
列上的重复项:
现在,您可以将查询与Sales
列上的ID
表合并(即加入):
展开Sales
表格,只选择ClientName
列:
最后,将空值替换为Unsold
:
(是的,字符串null
表示NULL
,但它的工作原理是这样的,这很奇怪)
最终结果:
完整M代码供您参考:
let
Source = Table.Combine({Product, Product2}),
#"Removed Duplicates" = Table.Distinct(Source, {"ID"}),
#"Merged Queries" = Table.NestedJoin(#"Removed Duplicates",{"ID"},Sales,{"ID"},"Sales",JoinKind.LeftOuter),
#"Expanded Sales" = Table.ExpandTableColumn(#"Merged Queries", "Sales", {"ClientName"}, {"ClientName"}),
#"Replaced Value" = Table.ReplaceValue(#"Expanded Sales",null,"Unsold",Replacer.ReplaceValue,{"ClientName"})
in
#"Replaced Value"