Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
Hola expertos
Quiero combinar dos tablas donde una tabla tiene identificadores primarios y la otra tabla con identificadores secundarios. Esto es para mostrar los valores duplicados que tenemos bajo un identificador primario. A continuación se muestra un ejemplo de la tabla con identificadores primarios.
Identificación del padre | Nombre | Apellido |
15515 | Estrella | Peters |
15516 | Janet | Roders |
15517 | Luke | Roberts |
Esta es la tabla de identificación secundaria
Identificación infantil | Identificación del padre | Nombre | Apellido |
14415 | 15515 | Estrella | Pete |
14456 | 15515 | Estrella | Peters |
14498 | 15516 | Janet | Montó |
14499 | 15516 | Janet | Roder |
14501 | 15517 | Luke | Roberts |
Quiero crear una tabla que apile los identificadores secundarios bajo los identificadores de los padres como se muestra a continuación.
ID de nombre | Nombre | Apellido |
15515 | Estrella | Peters |
14415 | Estrella | Pete |
14456 | Estrella | Peters |
15516 | Janet | Roders |
14498 | Janet | Montó |
14499 | Janet | Roder |
15517 | Luke | Roberts |
¿Espero que alguien pueda guiarme con esto? Muchas gracias de antemano.
Salud
Solved! Go to Solution.
No @dinetrsp
Cree una nueva consulta a partir de la tabla "parent id",
"Agregar columna de índice"->"Cambiar nombre columnas->agregar otra columna de índice
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"
A continuación, agregue los pasos en la tabla "parent id",
Agregar consultas de > de columnas de índice desde la tabla secundaria >agregar una consulta personalizada de > de columnas
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"
Puede descargar mi archivo y ver los detalles de cada paso.
Saludos
Maggie
Equipo de apoyo a la comunidad _ Maggie Li
Si esta publicación ayuda, entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola @dinetrsp
Para obtener el resultado a continuación, creo consultas en la consulta de energía.
Si usted está interesado con mi solución, por favor hágamelo saber, le explicaría con detalles.
Hola @v-juanli-msft esto es genial. Le agradecería que explicara la solución. Muchas gracias por compartir el archivo también.
¡Salud!
No @dinetrsp
Cree una nueva consulta a partir de la tabla "parent id",
"Agregar columna de índice"->"Cambiar nombre columnas->agregar otra columna de índice
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"
A continuación, agregue los pasos en la tabla "parent id",
Agregar consultas de > de columnas de índice desde la tabla secundaria >agregar una consulta personalizada de > de columnas
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"
Puede descargar mi archivo y ver los detalles de cada paso.
Saludos
Maggie
Equipo de apoyo a la comunidad _ Maggie Li
Si esta publicación ayuda, entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Creo que una solución que simplificará su problema sería crear una fila para cada padre que hace que el padre también sea el hijo de sí mismo.
15515 | 0 | Estrella | Pete |
14456 | 15515 | Estrella | Peters |
14456 | 15515 | Estrella | Peters |
Puede hacerlo como parte del proceso ETL. Imagino que también podríahacerlo en M como una forma de transformar la mesa a medida que la carga. Si necesita ayuda con cualquiera de las dos opciones, háganoslo saber.
Help when you know. Ask when you don't!
¿Quieres hacer un recurso compartido de pantalla mañana por la mañana? Estoy en la zona PST y estoy disponible desde las 7 de la mañana hasta las 5 de la noche. Si es así, envíeme un correo electrónico : ken@8thfold.com y un buen momento para hablar y le enviaré una invitación ZOOM.
Help when you know. Ask when you don't!
Gracias @kentyler por su respuesta. Me comunicaré con usted a su debido tiempo.