Gibt es eine "virtuelle Verkettung"?Hallo!Ich versuche, 8 Tabellen miteinander zu kombinieren und automatisch zu aktualisieren, wenn die ursprüngliche Tabelle (sei es Excel oder JMP-Datentabelle).
- Die 8 Tabellen haben die gleichen Spaltennamen und Eigenschaften, sie haben nur unterschiedliche Datensätze. Ich versuche also technisch, alle zusammen zu verketten.
- Ich brauche auch die verknüpfte Tabelle (in die die 8 einspeisen), um aktualisieren zu können, wenn die Daten in den Feedertabellen hinzugefügt / entfernt werden usw.
Ich weiß, dass es einen "Join" gibt, der eine Datenbank erstellen kann, die mit Änderungen an den Eingabedatentabellen virtuell aktualisiert wird, aber diese Funktion funktioniert nicht für meine Anforderungen, da sie nur die Daten ersetzt ("Join" -Funktion in JMP). es verkettet nicht.
Gibt es eine Funktion zum Verketten von 8 Datentabellen (vorzugsweise Excel) virtuell, sodass die verkettete Datentabelle (die mit allen 8 ursprünglichen Datentabellen zusammen) aktualisiert wird, wenn die Feeder-Datentabellen geändert werden?
Vielen Dank im Voraus!
DatentabelleBetreff: Gibt es eine "virtuelle Verkettung"?@AU ,
Ich kenne keine integrierte JMP-Option, um das zu tun, was Sie wollen, aber ein SQL-Master verfügt möglicherweise über eine Methode, um das zu tun, was ich denke, dass Sie wollen. Ich bin mir nicht sicher, was Ihre Erwartung / Ihr Anwendungsfall ist.
Erwarten Sie Aktualisierungen bei der Analyse der Daten? Haben Sie Analysen, die Sie aktualisieren möchten? Oder wird erwartet, dass diese Datei / Analyse in regelmäßigen Abständen aktualisiert wird?
Wenn Sie eine detailliertere Beschreibung Ihrer Erwartungen bereitstellen (dies versuchen), kann die Community Ihnen möglicherweise eine Lösung anbieten, auch wenn es sich nicht um eine integrierte JMP-Lösung handelt.
Betreff: Gibt es eine "virtuelle Verkettung"?Vielen Dank @ gzmorgan0 Für die Vorschläge habe ich einige weitere Details hinzugefügt.
Ah, ok, danke:(Ein bisschen unglücklich.Ich bin nicht mit SQL vertraut, aber ich bin offen dafür, es zu lernen / auszuprobieren, wenn es einfach / unkompliziert ist.
Betreff: Gibt es eine "virtuelle Verkettung"?Ich kenne auch kein Tool, das einem virtuellen Join entspricht, aber es klingt so, als könnten Sie dies mit einem nicht allzu komplexen Skript erreichen, das die traditionelle Verkettung verwendet.Hier ist der allgemeine Ansatz, mit dem ich beginnen würde:
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 );