Пакетное отслеживание в запросе мощности - PullRequest
0 голосов
/ 07 мая 2020

У меня есть CSV-файл с производственными данными. При загрузке в запрос мощности Excels он имеет аналогичную структуру (партии материалов могут содержать остатки старых партий материалов в качестве материала для вторичной переработки):

Mat_Batch    Date         Recyc_Batch    RawMaterial1    RawMaterial2    RawMaterial3    Amount1    Amount2    Amount3
123          01.11.2019                  Fe              Cr              Ni              70         19         11
234          01.12.2019                  Fe              Cr              Ni              71         18         11
345          01.02.2020   123            Fe              Cr              Ni              72         17          9
456          01.01.2020   234            Fe              Cr              Ni              70         19         11
567          01.02.2020                  Fe              Cr              Ni              72         16         10
678          01.01.2020   456            Fe              Cr              Ni              70         19         11

Другой CSV-файл имеет следующее содержимое (он просто связывает производственную партию к партии материала; производственные партии могут содержать более одной партии материала):

Batch    Mat_Batch
abc      456
abc      567
bcd      345

Теперь я хотел бы использовать запрос мощности m, чтобы оценить, какие именно партии материала были использованы для производства партии детали. Например, партия «ab c» была сделана из 456 + 567 + 234 (в качестве вторичного материала в 456).

В качестве первого шага я фильтрую таблицу производственных партий по заданной c партии и объединяю обе таблицы через результирующий столбец Mat_Batch. В качестве второй итерации я отделяю столбец Recyc_Batch от согласованных партий материалов и выполняю второе соединение с копией моей таблицы партий материалов, чтобы получить все дополнительные материалы для вторичной переработки, которые использовались. Но как я мог делать это «бесконечное количество раз»? То, как я это делаю, я должен создавать дополнительные запросы для каждой итерации, но мне нужен способ автоматического повторения этих шагов присоединения до тех пор, пока не перестанут использоваться дополнительные материалы для вторичной переработки.

1 Ответ

0 голосов
/ 13 мая 2020

вот запрос (результат), который вы можете использовать (если я правильно понял)

let
    Quelle = Table.NestedJoin(tbl_Material, {"Mat_Batch"}, tbl_Production, {"Mat_Batch"}, "tbl_Production", JoinKind.LeftOuter),
    Combine_Sources = Table.ExpandTableColumn(Quelle, "tbl_Production", {"Batch"}, {"Batch"}),
    DeleteOtherColumns = Table.SelectColumns(Combine_Sources,{"Batch", "Mat_Batch", "Recyc_Batch"}),
    UnpivotOtherColumns = Table.UnpivotOtherColumns(DeleteOtherColumns, {"Batch"}, "Attribut", "Wert"),
    FilterRows = Table.SelectRows(UnpivotOtherColumns, each ([Batch] <> null)),
    SortRows = Table.Sort(FilterRows,{{"Batch", Order.Ascending}})
in
    SortRows

Результат выглядит так PowerQuery Result С уважением, Крис

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...