Sottoreti per un datatable<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao a tutti,
Sono abbastanza alle prime armi con la codifica JMP e ho bisogno del tuo aiuto per capirlo.
Fondamentalmente quello che sto cercando di fare è importare un file Excel e salvarlo come databile e che sto raggiungendo usando questo comando.
Apri Database ("DSN = File Excel; DBQ =" xyz ".xlsm; DriverId = 1046; MaxBufferSize = 2048; PageTimeout = 5;", "SELEZIONA * DA` 'CPASU per coda $' "", "CPASU per coda $ ");
Fin qui tutto bene.
e poi dal CPASU dalla tabella dati della coda che è stata creata - Sto provando a creare un sottoinsieme di quella tabella di dati usando il seguente comando
(Tabella dati ("CPASU per coda $") << SELEZIONA DOVE E (FWEEK> 201201, Precisione previsione> 0)
<< sottoinsieme (
collegato,
Nome tabella di output ("Sottoinsieme di accuratezza di previsione $")));
Ora quando eseguo questi comandi sono perfettamente in grado di creare la tabella di dati CPASU in base alla coda e anche la tabella di sottoinsieme Sottoinsieme di accuratezza della previsione. Tuttavia, le righe restituite nella tabella dei sottoinsiemi non vengono restituite secondo la condizione che ho fornito nella clausola select. Restituisce tutte le righe dalla tabella dati principale (CPASU per coda) ...
Qualcuno può aiutarmi a capire questo?
Anche se c'è un libro che posso seguire per capire JMP JSL .... Ho provato a seguire lo script che è stato creato automaticamente dalla GUI di JMP, ma finora è stato un incubo.
Grazie in anticipo per tutto l'aiuto.
Ri: subset per un datatableLa tua istruzione IF ha chiuso le parentesi troppo presto e mancava una virgola:
Se ( found_rows > 0,
dp << sottoinsieme ( nome della tabella di output ( "Sottoinsieme di accuratezza previsione $" )) ;
);
Ri: subset per un datatableOk il problema è emerso di nuovo ... Non proprio sicuro di cosa sia successo al codice
dp = Tabella dati ( "CPASU di coda $" ) << SELEZIONA DOVE ( E ( FWEEK > 201201 , Non mascherato ! = 0 )) ;
found_rows = nrows ( dp << Ottieni righe selezionate ) ;
Se ( found_rows > 0 )
dp << sottoinsieme ( nome della tabella di output ( "Sottoinsieme di accuratezza previsione $" )) ;
CPASU per coda è un datatable creato da un file excel in precedenza nel codice. Per favore aiuto.
Grazie,
Ri: subset per un datatableRicorda di contrassegnare la risposta risolta dopo i buoni consigli e contrassegnare la risposta corretta e le risposte utili anche (= rende l'utilizzo del forum più efficiente)!
Ri: subset per un datatableSì, penso che il problema fosse nella collocazione della parentesi ... Ha funzionato ora ... Grazie ...
Ri: subset per un datatableSembra che tu abbia sbagliato una parentesi nella seconda selezione di sottoinsiemi. Devi mettere And () all'interno Select Where ().
Come questo:
dp = Tabella dati ( "CPASU di coda $" ) << SELEZIONA DOVE ( E ( FWEEK > 201201 , Nessun mascheramento ! = 0 ) ) ;
Ri: subset per un datatableHo provato a farlo ma non restituisce alcun nuovo risultato. Di seguito è riportato il codice completo.
// - Apertura del file e creazione di una connessione in JMP.
Apri database ("DSN = file Excel; DBQ = C: \ utenti \\ documenti \\ JMP Analysis \ XXX.xlsm; DriverId = 1046; MaxBufferSize = 2048; PageTimeout = 5;", "SELECT * FROM" "CPASU per coda $ "" "," CPASU per coda $ ");
// Crea il 1 ° sottoinsieme
(Tabella dati ("CPASU per coda $") << Selezionare Dove (AND (FWEEK> = 201201, FWEEK! = 201248, FWEEK! = 201247, FWEEK! = 201243, CPASU effettivo> 0)) << Sottoinsieme (collegato) ;
Tabella dati corrente (tabella dati ("Sottoinsieme di CPASU per coda $")));
// Crea il secondo sottoinsieme per la precisione della previsione
dp = (Tabella dati ("CPASU per coda $") << SELEZIONA DOVE E (FWEEK> 201201, No Mascheramento! = 0));
found_rows = nrows (dp << Get Selected Rows);
se (found_rows> 0,
// poi
dp << subset (nome della tabella di output ("Sottoinsieme di accuratezza di previsione $")),
// altro
scrivi ("Nessuna riga selezionata")
);
Il problema è nel secondo sottoinsieme. Sebbene stia creando il secondo sottoinsieme, restituisce lo stesso set di risultati della query del primo sottoinsieme e sono abbastanza sicuro nella tabella Data CPASU in base alla coda ci sono diverse righe che corrispondono alla condizione sql di SELECT WHERE AND (FWEEK> 201201, No mascheramento! = 0));
Per favore aiuto .... Grazie
Ri: subset per un datatableDovresti creare un sottoinsieme solo se sono state trovate delle righe per la tua ricerca. Se non viene trovata alcuna riga, il sottoinsieme sarà uguale alla tabella originale. Hai bisogno di qualcosa di simile. Ho incluso alcuni miglioramenti del codice per la leggibilità.
dt = Apri database ( "DSN = Excel Files; DBQ =" xyz ".Xlsm; DriverId = 1.046; MaxBufferSize = 2.048; PageTimeout = 5;" ,
"SELECT * FROM` 'CPASU di queue $' "" , "CPASU di coda $" ) ;
// Seleziona le file secondo le tue condizioni
dt << seleziona dove ( : FWEEK > 201201 & : Precisione delle previsioni > 0 ) ;
// Vedi se sono state selezionate delle righe
found_rows = nrows ( dt << Ottieni righe selezionate ) ;
Se ( found_rows > 0 ,
// poi
dt << sottoinsieme ( nome della tabella di output ( "Sottoinsieme di accuratezza previsione $" )) ,
// altro
stampare ( "Nessuna riga selezionata" )
) ;
Ci sono diversi eccellenti libri di scripting JMP là fuori. C'è il manuale di JMP Script PDF incluso con JMP, ma c'è anche il libro Passa a JMP (r) Scripting da Wendy Murphrey e Rosemary Lucas, ISBN 978-1-59994-658-0