Unión a la izquierda que coincide con el primer registro de la tabla derecha

Un usuario Pregunto ✅

Remco

Hola,

Estoy buscando una forma de unirme a 2 tablas en Power Query. Debe ser una combinación de la izquierda que solo devuelva el primer registro de la tabla de la derecha. Vea mi ejemplo a continuación:

Left_join.png

ImkeF

En respuesta a Remco

Sí, puede usar la pestaña «Agregado» en lugar de la pestaña «Expandir», elija cualquiera de las acciones predeterminadas y reemplace la función por «Lista.Primero».

Table.AggregateTableColumn (# «Filas agrupadas», «Recuento», {{«Caso», List.Count, «Recuento de casos»}})

se convertirá

Table.AggregateTableColumn (# «Filas agrupadas», «Recuento», {{«Caso», List.First, «Recuento de casos»}})

Pero el rendimiento puede ser un problema: https: //www.thebiccountant.com/2019/10/28/performance-tip-for-aggregation-after-joins-in-power-quer …

Es mejor hacer referencia a la tabla de búsqueda y luego hacer la diferenciación manualmente y desmarcar «cargar en modelo de datos» si va a usar esa tabla solo para este propósito.

ImkeF

Use Table.Distinct (# «Right table», {«TrackingID»}) en la combinación (modificando el código) o elimine los duplicados con la interfaz de usuario antes de la combinación.

Remco

En respuesta a ImkeF

Eso puede funcionar en mi consulta, pero no estoy seguro de cómo aplicar esto en la consulta a continuación.

# «Consultas fusionadas» = Table.NestedJoin (# «Columnas renombradas», {«Número de envío»}, BKM_UPS_D2L_carton_details_lookup, {«TrackingID»}, «BKM_UPS_D2L_carton_details_lookup», JoinKind.LeftOuter),
# «Expanded BKM_UPS_D2L_carton_details_lookup» = Table.ExpandTableColumn (# «Consultas fusionadas», «BKM_UPS_D2L_carton_details_lookup», {«Almacén_ virtual»}, {«BKM_UPS_D2L_cartón_detalles_detalles)
# «Renamed Columns2» = Table.RenameColumns (# «BKM_UPS_D2L_carton_details_lookup expandido», {{«BKM_UPS_D2L_carton_details_lookup.Virtual_Warehouse», «Location TrackingID»}}),

ImkeF

En respuesta a Remco

Hola @Remco

ajusta el primer paso así:

# «Consultas fusionadas» = Table.NestedJoin (# «Columnas renombradas», {«Número de envío»}, Table.Distinto (BKM_UPS_D2L_carton_details_lookup, {«ID de rastreo»), {«TrackingID»}, «BKM_UPS_D2L_carton_details_lookup», JoinKind.LeftOuter),

Remco

En respuesta a ImkeF

El error del editor de consultas dice que falta una coma, pero todas las comas están en el lugar correcto en su consulta. Pero también descubrí que mis datos están «sucios» para Distinct. Tengo que profundizar en los datos de la segunda tabla.

¿O hay otra solución para buscar solo el primer registro coincidente de la tabla correcta?

ImkeF

En respuesta a Remco

Sí, puede usar la pestaña «Agregado» en lugar de la pestaña «Expandir», elija cualquiera de las acciones predeterminadas y reemplace la función por «Lista.Primero».

Table.AggregateTableColumn (# «Filas agrupadas», «Recuento», {{«Caso», List.Count, «Recuento de casos»}})

se convertirá

Table.AggregateTableColumn (# «Filas agrupadas», «Recuento», {{«Caso», List.First, «Recuento de casos»}})

Pero el rendimiento puede ser un problema: https: //www.thebiccountant.com/2019/10/28/performance-tip-for-aggregation-after-joins-in-power-quer …

Es mejor hacer referencia a la tabla de búsqueda y luego hacer la diferenciación manualmente y desmarcar «cargar en modelo de datos» si va a usar esa tabla solo para este propósito.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *