

Estoy tratando de extraer un punto de datos de una tabla de datos en otra tabla de datos. Arriba hay un ejemplo. Una simple unión no parece llevarme a donde necesito ir. La tabla de datos de la izquierda en realidad es bastante grande (800K filas). Me gustaría hacer coincidir entre las dos tablas de datos basadas en id de jar y seq id. Luego, cree una nueva columna en la tabla de la izquierda con el ID TOTE y rellénela con los datos de la tabla de la derecha (que es mucho más pequeña en las filas de 70k) con una coincidencia exitosa. Por lo tanto, cualquier ID TOTE determinada de la tabla de datos de la derecha se utilizará repetidamente para rellenar la tabla de la izquierda. Gracias por su asistencia.
Lo que quieres hacer es una simple unión de las tablas de datos.
Tablas ==> Unirse
A continuación se muestra la JSL que realizará la unión, sin embargo, esto se puede hacer fácilmente en un modo interactivo
names default to here(1);
// Create Sample data tables
dt1 = New Table( "Base",
Add Rows( 10 ),
New Column( "Tube ID",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] )
),
New Column( "JAR ID",
Character,
"Nominal",
Set Values(
{"XXXY1", "XXXY1", "XXXY2", "XXXY2", "XXXY3", "XXXY3", "XXXY1", "XXXY1",
"XXXY3", "XXXY3"}
),
Set Display Width( 92 )
),
New Column( "SEQ ID",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1001, 1001, 1002, 1002, 1003, 1003, 1001, 1001, 1003, 1003] ),
Set Display Width( 131 )
)
);
dt2 = New Table( "Lookup",
Add Rows( 5 ),
New Column( "JAR ID",
Character,
"Nominal",
Set Values( {"XXXY1", "XXXY2", "XXXY3", "XXXY4", "XXXY5"} ),
Set Display Width( 72 )
),
New Column( "SEQ ID",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1001, 1002, 1003, 1004, 1005] ),
Set Display Width( 80 )
),
New Column( "TOTE ID",
Character,
"Nominal",
Set Values( {"AAA1", "AAA2", "AAA3", "AAA4", "AAA5"} )
)
);
// Join the tables
dtJoin = dt << Join(
With( dt2 ),
Merge Same Name Columns,
Match Flag( 0 ),
By Matching Columns( :JAR ID = :JAR ID, :SEQ ID = :SEQ ID ),
Drop multiples( 0, 0 ),
Include Nonmatches( 1, 0 ),
Preserve main table order( 1 ),
Output Table( "Joined" )
);También puede utilizar el comando Tablas> Actualizar.
dt1 << Update(
With( dt2 ),
Match Columns( :JAR ID = :JAR ID, :SEQ ID = :SEQ ID ),
Add Columns from Update table( :TOTE ID )
);