こんにちは、
データベースに接続し、手動で作成した長いSQLクエリを実行して、JMPファイルを定期的に更新する必要があります。 今までは「なので"データベースのフィールド名をJMPの列の簡略名と一致させるコマンド。 データを一時JMPテーブルにインポートした後、スクリプトは、同じ短い列名を使用して作業中のJMPファイルと結合することにより、更新を終了しました。
質問1:JMPの最新のSQLクエリビルダー(バージョン11以降で利用可能)を使用してみました。 しかし、クエリを手動で編集する以外に「AS」コマンドを管理するためのボタンが見つからないため、新しいコンストラクターの関心が大幅に低下します。 より効率的な方法はありますか?
質問2:私のニーズにより適した方法はありますか? フィールドを(名前を変更せずに)そのまま一時テーブルにインポートした場合、JMPテーブルのデータを更新する効率的な方法はありますか? たとえば、スクリプトである種の名前マッピングテーブルを使用していますか?
注意:アイテムが常に同じ順序であるとは限らず、派生データの新しい列を定期的に作成するため、更新されたデータをJMPファイルに直接インポートしないことを選択しました。 そうしないと、更新時にオフセットが作成されます。
ご清聴ありがとうございました
クロードB。
1つのオプションは、クエリ結果で名前を変更せずに、古い名前と新しい名前を持つ保存されたデータテーブルを使用して名前を更新することです。
Names default to here(1);
//Open a saved jmp file with the old and new names (creating the table here instead of opening it...)
dtNames = New Table( "Names",
Add Rows( 4 ),
New Column( "old", Character, "Nominal",
Set Values( {"Sepal length", "Sepal width", "Petal length", "Petal width"} )
),
New Column( "new", Character, "Nominal",
Set Values( {"sl", "sw", "pl", "pw"} )
)
);
//Run database query using 'default' column names
dtQuery = Open("$Sample_data/iris.jmp");
//Update names in the query results
for each row( dtNames,
Column( dtQuery, :old ) << Set Name( :new )
);