Come salvare i risultati dalla query SQL nella tabella dati?Ciao a tutti,
Ho il seguente problema. Voglio eseguire query SQL per ottenere dati dal database e funziona bene. Successivamente, vorrei salvare i dati dalla query nella tabella dei dati e utilizzarli per ulteriori elaborazioni. Sulla base delle idee di altri post ho assegnato un semplice compito alla nuova variabile dt_TestData . Sto fornendo come argomento per Data Table il nome preso da Nomeinterrogazione. Tuttavia si verifica un errore quando desidero salvare i dati nella nuova variabile. L'esecuzione della query funziona bene e la nuova tabella con nome Dati sperimentali si apre automaticamente, ma vorrei fare riferimento a quella tabella. Sto trascurando qualcosa e non sono in grado di notarlo. Gradirei aiuto per risolvere questo problema. Sto usando JMP15. Un'altra domanda, come disabilitare la visualizzazione della tabella dopo l'esecuzione della query? Distinti saluti.
Data = New SQL Query(
Connection(
"ODBC:Description=Datenbank;DRIVER=SQL Server;SERVER=Server;UID=%_UID_%;PWD=%_PWD_%;APP=JMP;DATABASE=EngineeringSupport;"
),
QueryName( "Experimental_Data" ),
Select(
Column( "Param1", "t1"),
Column( "Param2", "t1"),
Column( "Param3", "t1"),
),
From( Table( "TestData", Schema( "dbo" ), Alias( "t1" ))),
) << Run;
dt_TestData = Data Table("Experimental_Data");
Open(dt_TestData);
//further actions with dt_TestData: slicing, joining with other tables, etc.
Ri: Come salvare i risultati dalla query SQL nella tabella dati?Quello è strano. Quando eseguo una query, non posso inviare messaggi direttamente alla tabella dalla query. Devo prima trasformare quella tabella in una tabella di dati. Vedere l'esempio di seguito. Sto fraintendendo qualcosa?
Table = New SQL Query(
Version( 130 ),
Connection( "ODBC:DSN=yournamehere;" ), // OBS! needs to be present and carry correct name!
QueryName( "MyQuery" ),
Select(
Distinct,
Column( "A", "t1" ),
),
From(
Table(
"some table",
Schema( "some view" ),
Alias( "t1" )
),
Table(
"another table",
Schema( "another view" ),
Alias( "t2" ),
Join(
Type( Left Outer ),
EQ( Column( "BatchId", "t1" ), Column( "BatchId", "t2" ) )
)
)
)
) << Run;
// does not work
Close( Table, no save );
// does work
NewTable = Data Table( Table );
Close( NewTable, no save );
Ri: Come salvare i risultati dalla query SQL nella tabella dati?markbailey, grazie per la risposta. Non sapevo come ottenere il riferimento tramite script ma dopo ulteriori ricerche ho trovato la soluzione in questo inviare . Grazie a tutti per il vostro tempo e cordiali saluti.
Ri: Come salvare i risultati dalla query SQL nella tabella dati?La variabile Dati memorizza il riferimento alla tabella dati restituita dalla query. La chiamata di funzione Tabella dati( "Dati sperimentali' ) restituisce un riferimento alla tabella dati aperta Dati sperimentali. È possibile inviare messaggi al riferimento memorizzato in Dati .
Ri: Come salvare i risultati dalla query SQL nella tabella dati?gzmorgan0,
Grazie per la risposta! Avrei dovuto spiegarlo in modo più accurato, il problema è che non potevo creare la variabile "dt" che farebbe riferimento ai dati risultanti dalla query. Dopo che la query è stata eseguita, la nuova tabella viene creata e aperta, ma dove posso trovare (o creare) la variabile che fa riferimento ai dati? O è in qualche modo creato e non posso vederlo/usarlo? JMP mostra un errore relativo a questa riga:
dt_TestData = Tabella dati("Experimental_Data");
"Impossibile trovare la tabella dati durante l'accesso o la valutazione di Data Table, Data Table/*###*/("Experimental_Data")"
Penso che la variabile dt_TestData non può essere creato in questo modo? Apprezzerei un ulteriore aiuto per risolvere il problema.
Ri: Come salvare i risultati dalla query SQL nella tabella dati?@lukasz ,
L'ultima istruzione JSL è il problema: Open( dt_testData ).Se la query è stata eseguita correttamente, la tabella dati è già aperta. Se vuoi fare un'altra copia di quella tabella, usa Subset. Nell'esempio sotto dt2 è una tabella diversa.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt2 = dt << Subset( All Rows, Selected Columns(0), Output Table Name("Big2") );