Esiste una "concatenazione virtuale"?Ciao!Sto cercando di combinare 8 tabelle insieme e aggiornare automaticamente se la tabella originale (sia essa Excel o tabella dati JMP).
- Le 8 tabelle hanno gli stessi nomi di colonna e proprietà, hanno solo set di dati diversi, quindi quello che sto tecnicamente cercando di fare è concatenarli tutti insieme.
- Ho anche bisogno della tabella unita (in cui alimentano gli 8) per poter aggiornare se i dati nelle tabelle dell'alimentatore vengono aggiunti / rimossi, ecc.
So che esiste un "join" che può creare un database che si aggiornerà virtualmente con le modifiche alle tabelle dei dati di input, ma quella funzione non funziona per le mie esigenze perché sostituisce semplicemente i dati (funzione "join" su JMP); non si concatena.
Esiste una funzione per concatenare 8 tabelle di dati (preferibilmente Excel) virtualmente in modo tale che la tabella di dati concatenata (quella con tutte le 8 tabelle di dati originali combinate) si aggiornerà se le tabelle di dati dell'alimentatore vengono modificate?
Grazie in anticipo!
Tabella datiRi: C'è una "concatenazione virtuale"?@AU ,
Non conosco un'opzione integrata di JMP per fare quello che vuoi, ma un master SQL potrebbe avere un metodo per fare quello che penso tu voglia. Non sono sicuro di quale sia la tua aspettativa / caso d'uso.
Ti aspetti di ricevere aggiornamenti durante l'analisi dei dati? Hai analisi che vuoi aggiornare? O si prevede che questo file / analisi venga aggiornato a intervalli regolari?
Se fornisci una descrizione più dettagliata di ciò che ti aspetti (tentando di fare), la comunità potrebbe essere in grado di fornirti una soluzione, anche se non è una soluzione integrata di JMP.
Ri: C'è una "concatenazione virtuale"?Grazie @ gzmorgan0 per i suggerimenti, ho aggiunto qualche dettaglio in più.
Ah, ok, grazie:(Un po 'sfortunato.Non ho familiarità con SQL, ma sono disponibile ad apprenderlo / provarlo se è semplice / diretto.
Ri: C'è una "concatenazione virtuale"?Non conosco nemmeno uno strumento analogo a un join virtuale, ma sembra che potresti farlo con uno script non troppo complesso utilizzando il tradizionale concatenato.Ecco l'approccio generale con cui inizierei:
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 );