Script: lavora con la tabella dati dalla query OBBCCiao a tutti -
Sto lavorando con due set di dati memorizzati nel database di Microsoft Access, che ottengo tramite query ODCB. Devo unire le due tabelle dati risultanti, prima di eseguire altre manipolazioni dei dati.
Ho scritto l'intero processo, tuttavia non viene eseguito completamente in una volta. Devo sempre prima eseguire lo script per le due query ODCB, quindi eseguire il mio script per l'unione di tabelle e altre manipolazioni.
Altrimenti ricevo un messaggio di errore: " impossibile individuare la tabella dati nell'accesso o nella valutazione di "tabella dati", tabella dati / * ### * / ("qStreams") "
("qStreams" è delle due tabelle ottenute dalla query ODCB).
Sento che potrei aver bisogno di aggiungere uno script per memorizzare / dichiarare le tabelle di dati che ottengo dalle query ODCB per poterlo utilizzare in seguito, ed è qui che sono bloccato, perché non ho molta familiarità con lo script JSL (questo è il mio primo script in realtà).
Grazie per l'aiuto.
ScriptingRi: Script - Lavora con la tabella dati dalla query OBBCCiao @JRS ,
Prova a mantenere un riferimento alle tabelle di dati che apri con ciascuna connessione ODBC e utilizza quelle invece di chiamare per nome, in questo modo:
dt1 = Open Database( "DSN=My Data Source Name", "SELECT * FROM table1" );
dt2 = Open Database( "DSN=My Data Source Name", "SELECT * FROM table2" );
dt1 << Join(
With( dt2 ),
...
);
Ri: Script - Lavora con la tabella dati dalla query OBBCMolte grazie per la rapida risposta.
Ottengo il concetto ma non sono in grado di applicarlo al mio caso specifico. Il mio script di query è simile al seguente in questo momento:
New SQL Query(
Version( 130 ),
Connection(
"ODBC:DBQ=C:\Users\E822710\Desktop\ROTF\Database For JMP\Results.Mdb;DefaultDir=C:\Users\E822710\Desktop\ROTF\Database For JMP;Driver={Microsoft Access Driver (*.mdb, *.accdb)};DriverId=25;FIL=MS Access;FILEDSN=C:\Users\E822710\Desktop\ROTF\Database For JMP\Results.Mdb.dsn;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;"
),
QueryName( "qProperties" ),
Select(
Column( "CaseID", "t1", Analysis Type( "Nominal" ) ),
Column( "StreamID", "t1", Analysis Type( "Nominal" ) ),
Column( "StreamTag", "t1" ),
Column( "StreamDescription", "t1" ),
Column( "QualityID", "t1", Analysis Type( "Nominal" ) ),
Column( "QualityTag", "t1" ),
Column( "QualityDescription", "t1" ),
Column( "Value", "t1", Alias( "StreamQualityValue" ) ),
Column( "OriginDescription", "t1", Alias( "StreamOriginDescription" ) )
),
From( Table( "RW_StreamQualities", Alias( "t1" ) ) ),
Where(
In List(
Column( "QualityTag", "t1" ),
{"CRB"},
UI( SelectListFilter( ListBox, Base( "Categorical" ) ) )
)
),
Order By(
Column( "CaseID", "t1", Order( "Ascending" ) ),
Column( "StreamReportOrder", "t1", Order( "Ascending" ) ),
Column( "QualityReportOrder", "t1", Order( "Ascending" ) )
)
) << Run;
Mi rendo conto che avrei dovuto condividere subito la mia sceneggiatura.
Apprezzo la tua ulteriore guida.
Ri: Script - Lavora con la tabella dati dalla query OBBCImpostare una variabile uguale al valore di New SQL Query.Utilizzando le funzioni di livello più alto del tuo script, potrebbe essere simile a questo:
//Get data
dtqStreams = New SQL Query( ... ) << Run;
dtqProperties = New SQL Query( ... ) << Run;
// Join both Data Tables
dtJoined = dtqStreams << Join( With( dtqProperties ), ... );
// Set column properties
dtJoined:"StreamFeedFlag"n << Add Column Properties( ... );
// Add new columns
dtJoined << New Column( ... );
// Make graphs from your joined data table
dtJoined << Graph Builder( ... );
Ri: Script - Lavora con la tabella dati dalla query OBBCCiao -
Hai ancora qualche problema nell'unire entrambe le tabelle, ecco lo script che ho implementato dopo il tuo post:
// Join both Data Tables
dtJoined = dtqStreams << Join(
With( dtqProperties ),
Merge Same Name Columns,
Match Flag( 0 ),
By Matching Columns( :CaseID = :CaseID, :StreamID = :StreamID ),
Drop multiples( 0, 0 ),
Include Nonmatches( 0, 0 ),
Preserve main table order( 1 ),
Output Table( "UnitBalance.HY%" )
);
Ma dà ancora un errore:
