こんにちは!
2 つの別々のクエリ (2 つの異なるソースからデータを提供する) を実行するスクリプトを介して生成されたデータ テーブルがあり、それらはマージされてデータ テーブルを形成します。 私の質問は、スクリプトを最初から再実行する必要がなく、クリーニング/調整/新しい列を保持できる方法でこのテーブルを毎日更新することに関するものです。 サイドバーに「データベースからの更新」と「データベース 2 からの更新」の両方があることがわかります。 そのうちの 1 つを実行できますが、そのソースに含まれていない列が削除されます (つまり、最初のクエリである「データベースから更新」を実行すると、TVC、VI、AC、DC の列が削除されます)クエリ 2 と他の計算/手動入力列を元のスクリプトにマージした後にテーブルに追加します)。
2 つの更新スクリプトを 1 つのスクリプトにコピーしようとしましたが (以下を参照)、最初の更新スクリプトを実行すると、2 番目の更新スクリプトを実行する前に列を削除しようとするという問題が発生しました。 最良のアプローチがテーブルを結合してから更新を試みることなのか、それとももっと簡単な方法があるのかどうかはわかりません(そのソースから来たものではないデータを削除せずに更新する方法かもしれません)。 以下のコードでは接続情報を削除し、名前を変更しましたが、これがアイデアの参考になれば幸いです。 誰かが以前に同様の問題に対処したことがありますか? ありがとう!
New SQL Query(
Version( 130 ),
Connection(
""
),
QueryName( "query1" ),
Select(
Column( "Assay", "t1" ),
Column( "Experiment", "t1" ),
Column( "Date", "t1", Numeric Format( "m/d/y h:m:s", "0", "NO", "" ) ),
Column( "G", "t1" ),
Column( "L", "t1" ),
Column( "N", "t1" ),
Column( "K", "t1" ),
Column( "C", "t1" ),
Column( "H", "t1" ),
Column( "O", "t1" ),
Column( "C", "t1" ),
),
From( Table( "Runs", Schema( "schema1" ), Alias( "t1" ) ) ),
Where(
Contains(
Column( "Experiment", "t1" ),
"E001",
UI(
Contains(
Base(
"Categorical",
Prompt(
"Experiment ID:",
Character,
PromptName( "t1.Experiment_1" )
)
)
)
)
) & Does Not Contain(
Column( "Assay, "t1" ),
"xxx",
UI(
Contains(
Base(
"Categorical",
Prompt(
"Add a filter for names (optional) or put xxx:",
Character,
PromptName( "t1.AssayId_1" )
)
)
)
)
) & GE(
Column(
"Date",
"t1",
Numeric Format( "m/d/y h:m:s", "0", "NO", "" )
),
0,
UI(
Comparison(
Base(
"Continuous",
Prompt(
"Date range:",
Character,
PromptName( "t1.RunDate_1" )
)
)
)
)
)
)
) << Run Foreground( UpdateTable( Current Data Table() ) );
New SQL Query(
Version( 130 ),
Connection(
""
),
QueryName( "query2" ),
Select(
Column( "Assay", "t2" ),
Column( "Experiment", "t2" ),
Column( "Date", "t2", Numeric Format( "m/d/y h:m:s", "0", "NO", "" ) ),
Column( "TVC", "t2" ),
Column( "VI", "t2" ),
Column( "AC", "t2" ),
Column( "AD", "t2" )
),
From( Table( "Runs", Schema( "schema2" ), Alias( "t2" ) ) ),
Where(
Contains(
Column( "Experiment", "t2" ),
"E001",
UI(
Contains(
Base(
"Categorical",
Prompt(
"Experiment ID:",
Character,
PromptName( "t2.Experiment_1" )
)
)
)
)
) & Does Not Contain(
Column( "Assay", "t2" ),
"xxx",
UI(
Contains(
Base(
"Categorical",
Prompt(
"Add a filter (optional) or put xxx:",
Character,
PromptName( "t2.AssayId_1" )
)
)
)
)
) & GE(
Column(
"Date",
"t2",
Numeric Format( "m/d/y h:m:s", "0", "NO", "" )
),
0,
UI(
Comparison(
Base(
"Continuous",
Prompt(
"Date range:",
Character,
PromptName( "t2.RunDate_1" )
)
)
)
)
)
)
) << Run Foreground( UpdateTable( Current Data Table() ) )