Hallo!
Ich habe eine Datentabelle, die über ein Skript erstellt wurde, das zwei separate Abfragen ausführt (die Daten aus zwei verschiedenen Quellen bereitstellen), die dann zu einer Datentabelle zusammengeführt werden. Meine Frage betrifft die tägliche Aktualisierung dieser Tabelle, sodass das Skript nicht von Anfang an erneut ausgeführt werden muss und alle Bereinigungen/Anpassungen/neuen Spalten beibehalten werden können. Ich sehe in der Seitenleiste sowohl „Update von Datenbank“ als auch „Update von Datenbank2“. Ich kann eine davon ausführen, aber sie löscht die Spalten, die nicht in dieser Quelle enthalten sind (d. h. wenn ich „Aus Datenbank aktualisieren“ ausführe, was für die erste Abfrage gilt, werden die Spalten TVC, VI, AC und DC gelöscht aus Abfrage 2 zusammen mit anderen Berechnungs-/manuellen Eingabespalten, die ich der Tabelle nach dem Zusammenführen im Originalskript hinzufüge).
Ich habe versucht, die beiden Update-Skripte zusammen in ein Skript zu kopieren (siehe unten), habe aber das Problem, dass beim Ausführen des ersten Skripts versucht wird, die Spalten zu löschen, bevor das zweite ausgeführt wird. Ich bin mir nicht sicher, ob es der beste Ansatz wäre, die Tabellen zu kombinieren und dann zu versuchen, sie zu aktualisieren, oder ob es etwas Einfacheres gibt (vielleicht eine Möglichkeit, sie zu aktualisieren, ohne Daten zu löschen, die nicht aus dieser Quelle stammen)? Ich habe die Verbindungsinformationen entfernt und die Namen im Code unten geändert, aber hoffentlich hilft dies dabei, eine Vorstellung zu vermitteln. Hat jemand schon einmal mit einem ähnlichen Problem zu tun gehabt? Danke!
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() ) )