同じ一致IDを使用して複数のデータテーブルを結合/更新する方法こんにちは、
同じ一致IDを使用して複数のデータテーブルを結合しようとしています。
update_table= データ テーブル( PS1(ma) " ) << Update(
With( データテーブル( "PS2(ua) ")),
With( データテーブル( "PS3(ua) ")),
With( データテーブル( "PS4(ua) ")),
列の一致( :match_col = :match_col )、
出力テーブル名("FINal")
);
上記のコードは最初のテーブルのみを更新/結合し、残りを無視します。
複数のテーブルを同時に結合/更新する方法はありますか。
また、データ テーブル名を使用する代わりに、データ テーブル参照\ハンドルを使用してテーブルを結合または更新する方法はありますか。
THX
Re: 同じマッチIDを使用して複数のデータテーブルを結合/更新する方法はい、可能です。名前、番号 (例: Data Table(1))、または定義された変数を使用してテーブルをアドレス指定できます。以下は、データテーブルを参照する変数 dt1 と dt2 を使用した例です。
パス= "$SAMPLE_DATA/" ; // データテーブルのディレクトリへのパス
テーブル= ディレクトリ内のファイル( path )[ 1 :: 3 ] ; // サンプルディレクトリが巨大なため、ここでは最初の 3 ファイルに限定します
dt1 = ( "$SAMPLE_DATA/Big Class.jmp" )を開きます。
For ( i = 1 , i <= N Items ( tables ) , i ++, //
If (で終わる( tables [ i ] ) 、 ".jmp" ) 、 // ファイル i がデータテーブルであることをテストします
dt2 =開く(パス||テーブル[ i ] ) ;
dt1 << update ( with ( dt2 ) ) ;
閉じる( dt2 、保存なし) ;
)
);
Re: 同じマッチIDを使用して複数のデータテーブルを結合/更新する方法やあ、MSさん
ありがとう...それは良いアイデアですね。
ところで、データテーブル名の代わりにテーブル参照\ハンドルを使用できますか。試してみましたが、うまくいきませんでした。
THX
Re: 同じマッチIDを使用して複数のデータテーブルを結合/更新する方法私の知る限り、 Update (およびJoin ) は複数のテーブルを処理できません。この状況ではループを使用します。たとえば、次のようになります。
tablenames = { "PS2 (メーカー) " , 「PS3(ド)」 、 "PS4(する) " } ;
( i = 1 , i <= N Items ( tables ) 、 i ++の場合、
データ テーブル( "PS1(ma) " ) << update ( with (データ テーブル( tablenames [ i ] ) ) )