Forum Discussion
Stack Child Ids under Parent Ids in a PowerBi table
- 6 years ago
Not @dinetrsp
Create a new query from the "parent id" table,
"Add Index Column" ->"Rename Columns->Add Another Index Column
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjQ1NTRV0lEKLknNyUkEMgJSS1KLipVidSByZkAhr8S81BIgHZSfgixlDhTyKc1OBcskpRaVAKViAQ==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [#"Parent ID" = _t, #"First Name" = _t, #"Last Name" = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Parent ID", Int64.Type}, {"First Name", type text}, {"Last Name", type text}}), #"Added Index" = Table.AddIndexColumn(#"Changed Type", "Index", 1, 1), n=Table.SelectColumns(#"Added Index",{"Parent ID","First Name","Last Name","Index"}), #"Renamed Columns" = Table.RenameColumns(n,{{"Parent ID", "Name ID"}}), #"Added Custom" = Table.AddColumn(#"Renamed Columns", "Index_2", each 1) in #"Added Custom"Next, add the steps in the "parent id" table,
Add index column > queries from the child table >add a custom column > query
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjQ1NTRV0lEKLknNyUkEMgJSS1KLipVidSByZkAhr8S81BIgHZSfgixlDhTyKc1OBcskpRaVAKViAQ==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [#"Parent ID" = _t, #"First Name" = _t, #"Last Name" = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Parent ID", Int64.Type}, {"First Name", type text}, {"Last Name", type text}}), #"Added Index" = Table.AddIndexColumn(#"Changed Type", "Index", 1, 1), #"Merged Queries" = Table.NestedJoin(#"Added Index", {"Parent ID"}, #"child table", {"Parent ID"}, "child table", JoinKind.RightOuter), #"Expanded child table" = Table.ExpandTableColumn(#"Merged Queries", "child table", {"Child ID", "First Name", "Last Name"}, {"child table. Child ID", "child table. First Name", "child table. Last Name"}), #"Removed Columns" = Table.RemoveColumns(#"Expanded child table",{"Parent ID", "First Name", "Last Name"}), #"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"child table. Child ID", "Name ID"}, {"child table. First Name", "First Name"}, {"child table. Last Name", "Last Name"}}), #"Reordered Columns" = Table.ReorderColumns(#"Renamed Columns",{"Name ID", "First Name", "Last Name", "Index"}), #"Added Custom" = Table.AddColumn(#"Reordered Columns", "Index_2", each 2), #"Appended Query" = Table.Combine({#"Added Custom", Query1}), #"Sorted Rows" = Table.Sort(#"Appended Query",{{"Index", Order.Ascending}, {"Index_2", Order.Ascending}}) in #"Sorted Rows"You can download my file and see the details of each step.
Best regards
Maggie
Community Support Team _ Maggie Li
If this post helps, then please consider Accepting it as the solution to help other members find it more quickly.
I think a solution that will simplify your problem would be to create a row for every parent that makes the parent also the child of itself.
| 15515 | 0 | Stella | Pete |
| 14456 | 15515 | Stella | Peters |
| 14456 | 15515 | Stella | Peters |
You can do that as part of the ETL process. I imagine you could also do it in M as a way of transforming the table as you load it. If you need help with either option, let us know.
- Anonymous6 years agoNot applicable
Thanks a lot kentyler . I need your assistance with both of these options.
- kentyler6 years ago
Solution Sage
Do you want to do a screen share tomorrow morning ? I am in PST zone and I'm available from 7 in the morning to 5 at night. If so send me an email : [email protected] and a good time to talk and I'll send you a ZOOM invitation.
- Anonymous6 years agoNot applicable
Thanks kentyler for your reply. I will contact you in due course.