我试图通过电源查询将表中的MAX日期放到另一个日期。目前我被困住了,我得到的只是一张基于条件的表格。不确定这是否清楚,所以我将用代码解释。这是我目前的代码:
let
Source = Table.NestedJoin(Table.NestedJoin(SKU,{"SKU"},q_UltColh_NEW,{"SKU"},"qUltColh_NEW",JoinKind.LeftOuter),{"SKU"},r_STK,{"SKU"},"Rep_Stk", JoinKind.LeftOuter),
.
.
.
#"Expanded Origem" = ...
#"Expanded Origem" = Table.ExpandTableColumn(#"Merged Queries", "Origem", {"Desc_ORI", "Parent_ORI"}, {"Origem.Desc_ORI", "Origem.Parent_ORI"}),
#"Added Last_Rec" = Table.AddColumn(#"Expanded Origem", "Last_Rec", each
let SKU = [SKU]
in Table.SelectRows(r_GOODSREC,each [SKU]=SKU)
)
in
#"Added Last_Rec"
我有两张桌子:
SKU Desc
46_24_ ABC
103_5_ DEF
doc_DATE RowNo SKU Cod_ART QTT
10/01/2017 1 46_24_ 46.24 50
14/01/2017 1 46_24_ 46.24 100
14/01/2017 1 103_5_ 103.5 50
16/01/2017 1 103_5_ 103.5 100
我想得到:
SKU Desc Last_Entry Qtt
46_24_ ABC 14/01/2017 50
103_5_ DEF 16/01/2017 100
我的代码返回一个包含各种列的表:
SKU Desc Last_Entry
46_24_ ABC表
103_5_ DEF表
我相信一旦我获得最大值,我就可以开始使用桌子,除非你告诉我这是一个糟糕的意识形态。
非常感谢,
答案 0 :(得分:0)
我用下面的代码得到了这个:
注意:
1。我的日期格式是月/日/年,而您的日期格式是日/月/年。
2。此外,在您的问题中,您显示SKU 46_24_的预期QTT为50;但是您的源表有100个作为最新日期为SKU 46_24_的QTT,这就是为什么我的表有100而不是50。
我使用了与你相同的两个起始表。我称他们为Table1和Table2。 (表1是仅包含SKU和Desc列的那个。)
然后我使用左外连接将这两个表合并到一个名为Merge1的新表中。
我猜关键点是:
我使用“Group By”(即Table.Group)按每个SKU分组并在名为Last_Entry的列中获取其最大日期值,并且我将所有行数据包含在名为AllData的列中。这是Group By弹出窗口:
然后,在Group By之后,我在AllData中展开了嵌入式表,并添加了一个新列来标记并过滤掉doc_Date不等于Last_Entry的行。
let
Source = Table.NestedJoin(Table1,{"SKU"},Table2,{"SKU"},"Table2",JoinKind.LeftOuter),
#"Expanded Table2" = Table.ExpandTableColumn(Source, "Table2", {"doc_Date", "RowNo", "SKU", "Cod_ART", "QTT"}, {"doc_Date", "RowNo", "SKU.1", "Cod_ART", "QTT"}),
#"Changed Type" = Table.TransformColumnTypes(#"Expanded Table2",{{"doc_Date", type date}}),
#"Grouped Rows" = Table.Group(#"Changed Type", {"SKU"}, {{"Last_Entry", each List.Max([doc_Date]), type datetime}, {"AllData", each _, type table}}),
#"Expanded AllData1" = Table.ExpandTableColumn(#"Grouped Rows", "AllData", {"Desc", "doc_Date", "QTT"}, {"Desc", "doc_Date", "QTT"}),
#"Added Custom" = Table.AddColumn(#"Expanded AllData1", "Custom", each if[Last_Entry]=[doc_Date] then "Last_Entry" else "NotLast_Entry"),
#"Filtered Rows" = Table.SelectRows(#"Added Custom", each ([Custom] = "Last_Entry")),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Custom", "doc_Date"}),
#"Reordered Columns" = Table.ReorderColumns(#"Removed Columns",{"SKU", "Desc", "Last_Entry", "QTT"})
in
#"Reordered Columns"