こんにちは!8つのテーブルを組み合わせて、元のテーブル(ExcelまたはJMPデータテーブル)の場合は自動的に更新しようとしています。
- 8つのテーブルの列名とプロパティは同じで、データセットが異なるだけなので、技術的には、すべてを連結することを試みています。
- また、フィーダーテーブルのデータが追加/削除された場合などに更新できるように、結合されたテーブル(8がフィードする)も必要です。
入力データテーブルの変更で仮想的に更新されるデータベースを作成できる「結合」があることは知っていますが、その関数はデータを置き換えるだけなので、私のニーズには機能しません(JMPの「結合」関数)。連結しません。
フィーダーデータテーブルが変更された場合に、連結されたデータテーブル(8つの元のデータテーブルすべてが結合されたもの)が更新されるように、8つのデータテーブル(できればexcel)を仮想的に連結する機能はありますか?
前もって感謝します!
@AU 、
私はあなたが望むことをするためのJMP組み込みオプションを知りませんが、SQLマスターはあなたが望むことをするためのメソッドを持っているかもしれません。 あなたの期待/ユースケースがどうなるかわかりません。
データの分析中に更新があると思いますか? 更新したい分析はありますか? または、このファイル/分析は一定の時間間隔で更新されると予想されますか?
あなたが期待していること(やろうとしていること)のより詳細な説明を提供する場合、それがJMP組み込みソリューションでなくても、コミュニティはあなたにソリューションを提供できるかもしれません。
ありがとう@ gzmorgan0提案のために、私はいくつかの詳細を追加しました。
ああ、わかりました、ありがとう:(少し残念です。私はSQLに精通していませんが、SQLが単純で単純なものであれば、SQLを学習/試してみることができます。
仮想結合に類似したツールも知りませんが、従来の連結を利用したそれほど複雑ではないスクリプトでこれを実現できるようです。これが私が始める一般的なアプローチです:
Names Default to here(1);
//reference the current data table (the one you are already working in)
dtLatest = current data table();
//list of all source files and variable to hold references to source tables
SourceFile = {"C:\file1.xlsx", "C:\file2.xlsx", ... };
dtSource = list();
//If all files have the same format, use a function to open them all
openfile = Function({fn},
//Open function, copy this from the source script after opening a file interactively
dt = Open(
fn,
Worksheets( "Sheet 1" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 1 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
dt << New Column(..); //add any more columns, filter or clean data as appropriate
dt;
);
//Open source tables
for( f=1, f<= n items(SourceFile), f++,
dtSource = openfile( SourceFile[f] )
);
//Join all the files together
dtJoined = Concatenate(dtSource);
//Close the source tables
dtSource << Close Window()
//In the source table, delete all rows
dtLatest << Select all Rows;
dtLatest << Delete Rows;
//Concatenate the new rows again
dtLatest << Concatenate( dtJoined );