

あるデータテーブルから別のデータテーブルにデータポイントを取得しようとしています。上記は一例です。単純な結合では、どこに行く必要があるのかわかりません。実際の左側のデータテーブルはかなり大きいです(800K行)。jar IDとseq IDに基づいて、2つのデータテーブルを照合したいと思います。次に、左側のテーブルにTOTE IDを指定して新しい列を作成し、右側のテーブルのデータ(これよりはるかに小さい70k行)を使用してデータを入力します。そのため、右側のデータテーブルのTOTE IDは、左側のテーブルに繰り返し入力されて使用されます。ご協力いただきありがとうございます。
あなたがやりたいことはデータテーブルの単純な結合です。
テーブル==>結合
以下は参加するJSLですが、これは対話モードで簡単に実行できます。
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" )
);Tables> Updateコマンドを使用することもできます。
dt1 << Update(
With( dt2 ),
Match Columns( :JAR ID = :JAR ID, :SEQ ID = :SEQ ID ),
Add Columns from Update table( :TOTE ID )
);