Hai bisogno di aiuto per selezionare la data.Sto creando un sottoinsieme in cui utilizzo Seleziona dove: Data di accesso == 18/01/2019; Non riesco a farlo funzionare.Ho anche provato ad aprire il sottoinsieme ed eseguire il generatore di query.Posso aggiungere tutti i campi e quindi filtrare per data di accesso.Le date di accesso vengono visualizzate nel filtro.Se scelgo una delle date e premo Aggiorna, non viene visualizzato alcun record.Di seguito è riportato il mio codice e ho allegato la schermata del generatore di query.Qualsiasi aiuto sarebbe apprezzato.
Saluti,
Wayne
</CODE></PRE><P> </P><P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Capture-6.PNG" style="width: 973px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Capture-6.PNG" style="width: 973px;"><span class="lia-inline-image-display-wrapper" image-alt="Capture-6.PNG" style="width: 973px;"><img src="https://us.v-cdn.net/6038925/uploads/images/15261iF7CEA402ACB0B52C/Capture-6.PNG" role="button" title="Capture-6.PNG" alt="Capture-6.PNG" /></span></SPAN></SPAN></P></LINGO-BODY><LINGO-SUB id="lingo-sub-108358" slang="en-US" mode="NONE">Ri: Hai bisogno di aiuto per selezionare la data.</LINGO-SUB><LINGO-BODY id="lingo-body-108358" slang="en-US" mode="NONE">Jim,<BR /><BR /> Alla fine l'ho capito. Ho preso la tua soluzione, poi mi sono sbarazzato dell'estensione e l'ho aggiunta di nuovo alla mia selezione originale dove. Per qualche motivo l'estensione non ha funzionato.<BR /> Grazie per aver dedicato tutto il tuo tempo ad aiutarmi a risolvere questo problema. Davvero apprezzato. Senza tutti gli esperti di questo forum, le persone che imparano come me non sarebbero in grado di completare i loro progetti.<BR /><BR /> Saluti,<BR /><BR /> Wayne</LINGO-BODY><LINGO-SUB id="lingo-sub-108356" slang="en-US" mode="NONE">Ri: Hai bisogno di aiuto per selezionare la data.</LINGO-SUB><LINGO-BODY id="lingo-body-108356" slang="en-US" mode="NONE"><P>Jim,</P><P>Ho notato nello strumento di debug che si afferma che ALstartDT è una stringa e non un numero.Spero che questo aiuti.</P><P> </P><P>Saluti,</P><P> </P><P>Wayne</P></LINGO-BODY><LINGO-SUB id="lingo-sub-108355" slang="en-US" mode="NONE">Ri: Hai bisogno di aiuto per selezionare la data.</LINGO-SUB><LINGO-BODY id="lingo-body-108355" slang="en-US" mode="NONE"><P>Jim,</P><P> </P><P>Nessun errore, ma non viene suddiviso in base alla data ALstartDT inserita dalla casella di testo della data.Il mio file contiene righe con date di accesso dal 2/1/2019 al 24/01/2019. Il mio ALstartDT è il 18/01/2019.</P><P> </P><P>Saluti,</P><P> </P><P>Wayne</P></LINGO-BODY><LINGO-SUB id="lingo-sub-108347" slang="en-US" mode="NONE">Ri: Hai bisogno di aiuto per selezionare la data.</LINGO-SUB><LINGO-BODY id="lingo-body-108347" slang="en-US" mode="NONE"><P>Il problema è che hai :login Date come colonna di caratteri e contiene i dati temporali insieme ai dati della data.Pertanto, quando lo confronti con ALstartDT, presenta problemi.Ti suggerisco di rimuovere il commento dalla riga in cui hai tentato di modificare la :Login Date in un numero con il formato "m/d/y".Dovrebbe essere leggermente cambiato per assomigliare</P>
<PRE><CODE class=" language-jsl">dt6:Login Date << data type(numeric) << modeling type(continuous)<< format( "m/d/y");
e quindi modificare la selezione delle linee in cui
dt6 << Select where ((Contains(MyList, :Site ID)) & :Analysis == "G4");
dt6 << Select where (:Login Date >= informat(ALstartDT,"mm/dd/yyyy"),current selection("extend"));Ri: Hai bisogno di aiuto per selezionare la data.Jim,
La tabella JMP di esempio: Data di accesso è in formato carattere.Credo che AlstartDT sia numerico ed è per questo che riscontro questo problema?Credi che sia questo il problema?Se sì, cosa consigli?
Saluti,
Wayne
Ri: Hai bisogno di aiuto per selezionare la data.Jim,
Questo è l'Excel che sto importando.Dopo l'importazione ottengo la seguente tabella.Vedi allegato.
Wayne
Ri: Hai bisogno di aiuto per selezionare la data.Jim,
Sono d'accordo.In allegato è riportata una tabella di esempio.
Saluti,
Wayne
Ri: Hai bisogno di aiuto per selezionare la data.Sono abbastanza sicuro che il problema sia una mancata corrispondenza nel fatto che la colonna sia o meno un carattere rispetto alla variabile di confronto sia un carattere.Puoi allegare una tabella dati di esempio?
Ri: Hai bisogno di aiuto per selezionare la data.Jim,
Ottengo ancora che l'argomento dovrebbe essere numerico{1} nell'accesso o nella valutazione di 'Format' , Format/*###*/(:Login Date, "mm/dd/yyyy")Ri: Hai bisogno di aiuto per selezionare la data.Ops, errore mio.La [Riga()] è il problema.Utilizzo
dt << select where( Format( :Login Date, "mm/dd/yyyy" ) <= ALstartDT );
Ri: Hai bisogno di aiuto per selezionare la data.Jim,
Quando provo a convertire :Login Date in una stringa, ricevo l'errore che l'argomento dovrebbe essere numerico{1} nell'accesso o nella valutazione di 'Format', Format/*###*/:Login Date [Row()], "gg/mm/aaaa")
Saluti,
Wayne
Ri: Hai bisogno di aiuto per selezionare la data.Perché hai impostato la variabile "ALstartDT" su una stringa
ALstartDT = Uppercase( Format( TempstartDT, "mm/dd/yyyy" ) );
(La funzione Format() restituisce un valore stringa)
È quindi necessario convertire anche la tua ":Data di accesso" in una stringa....la ":Data di accesso" che presumo sia una colonna di data JMP.
dt6 << Select where( Format(:Login Date[row()], "mm/dd/yyyy") >= ALstartDT, current selection( "extend" ) );
Ri: Hai bisogno di aiuto per selezionare la data.Jim,
Sto usando 14.1.Ho provato tanti modi diversi per formattare le mie date e non ho trovato il formato giusto.Di seguito è riportato altro del mio codice.Sto passando una variabile da una casella di data.Sembra la mia data di accesso all'importazione Excel
Dai un'occhiata se sto passando correttamente ALstartDT e qualsiasi consiglio su come formattare correttamente la data per far funzionare la selezione.
Grazie,
Wayne
Pulisci il registro();
Nomi predefiniti qui (1);
runScript = Espr(
TempstartDT = inizio << ottieni;
TempendDT = fine << ottieni;
ALstartDT = Maiuscolo(Formato(TempstartDT, "mm/gg/aaaa"));
ALendDT = Maiuscolo(Format(TempendDT, "mm/gg/aaaa"));
);
// Scritto da Vince Faller
// Fa apparire un calendario su numeditbox (il valore predefinito è adesso)
// Nota, funziona solo su JMP 11 o versioni successive
dataBox = Funzione(
{timething = Oggi()},
{nuovascatola},
nuovascatola = Valutazione(
Sostituire(
Nome Espr(
Casella di modifica numero(
timething, // Eval(Sub()) a causa di peculiarità di JMP
10, // Ne serve solo perché JMP non imposta una larghezza predefinita
< Funzione ({self},
{},
Se (manca (self << get),
self << Set( Eval( DUMMY ) ) // Imposta la data sull'argomento timething
)
)
),
<< Imposta formato(Formato( "m/g/ah:m:s", 23, 0 ) ); // Crea il formato data/ora per la casella (fornisce il calendario)
)
),
Espr( DUMMY ), cronometraggio
)
);
nuova casella;
);
nw =
Nuova finestra ("Estrazione della tabella dati SQL",
Casella di allineamento(NCol(2),
TextBox("Start DateTime"), start = dateBox(Today()- InDays(12)),
TextBox("Fine DateTime"), fine = dateBox(),
ButtonBox("Cancel", ButtonPressed = "Cancel"), ButtonBox("Get Data", ButtonPressed = "Get Data") //memorizza l'input della pressione del pulsante utente nella variabile
));
aspettare (15);
//Se le istruzioni eseguono un'azione in base al pulsante premuto nel prompt della data
If (ButtonPressed == "Annulla", nw << Chiudi finestra);
Se (PulsantePremuto == "Annulla", Stop());
if (PulsantePremuto == "Ottieni dati", eseguiScript);
Se (Pulsante premuto == "Ottieni dati", eseguiScript2);
If (ButtonPressed == "Ottieni dati", nw << Chiudi finestra);
Caption("La query è in esecuzione");
attendere(0);
Nomi predefiniti qui (1);
Utilizzare per tutti i fogli( 1 ),
Concatena fogli di lavoro( 0 ),
Crea colonna di concatenazione( 0 ),
Impostazioni del foglio di lavoro(
1,
Ha intestazioni di colonna (1),
Numero di righe nelle intestazioni (1),
Le intestazioni iniziano sulla riga (1),
I dati iniziano nella riga (2),
I dati iniziano nella colonna (1),
I dati terminano nella riga (0),
I dati terminano nella colonna (0),
Righe con spanning replicate( 1 ),
Intestazioni con spanning replicate( 0 ),
Sopprimi righe nascoste( 1 ),
Elimina colonne nascoste( 1 ),
Sopprimi colonne vuote( 1 ),
Tratta come gerarchia( 0 ),
Stack di serie multiple( 0 ),
Importa colori cella( 0 ),
Rilevamento colonna limite( 0 ),
Stringa separatore di colonna( "-")
);
);
//Colonna ("Data di accesso") << tipo dati (numerico) << formato("m/g/a");
dt6 << Seleziona dove (:Data di accesso >= ALstartDT,selezione corrente("estendere"));
dt7 << seleziona dove (manca (: ID etichetta)) << elimina righe;
selrows=dt7 << ottieni righe dove (:Formatted Entry == "ND");
dt7:Voce formattata[selRows]="0";
dt7:Voce formattata << tipo dati(Numerico);
Ri: Hai bisogno di aiuto per selezionare la data.Per espandere @Mark_Bailey La risposta di qui è un esempio che mostra la costante di data in uso.
dt = open("$SAMPLE_DATA\TechStock.jmp");
dt << select where(Date <= 05Jan2001);
Per ulteriori suggerimenti sulle date vedere Utilizzo di date, ore, date e durate in JMP .
Ri: Hai bisogno di aiuto per selezionare la data.Tieni presente che puoi utilizzare valori di data letterali (costanti) direttamente senza la necessità di effettuare conversioni tra stringhe di caratteri e valori numerici. Il modulo è GGmmAAAA:HH:MM:SS.S . (Utilizza questo modulo solo quanto necessario, omettendo il lato destro.) Quindi, ad esempio, potrei inserire direttamente il valore numerico corretto per le 8 del mattino di oggi come:
29Jan2019:08:00
L'editor dello script riconosce questo valore come un numero con il codice colore se la funzione è abilitata.
Ri: Hai bisogno di aiuto per selezionare la data.Ecco un esempio Seleziona dove, nella stessa struttura del Seleziona dove annotato.Funziona.Quindi credo che tu debba eventualmente utilizzare il debugger JSL per esaminare il codice e scoprire dove si trovano i problemi.
names default to here(1);
dt= open("$SAMPLE_DATA/Aircraft Incidents.jmp");
MyList = {"Accident", "Incident" };
dt << Select where( (Contains( MyList, :Investigation Type) & :Location == "Eden, UT"));
dt << Select where( format(Column( "Event Date" )[Row()], "M/D/Y" ) == "01/05/2001", current selection("extend"));
Ho controllato il codice su JMP 11.La "selezione corrente("estensione") è stata aggiunta in JMP 12, quindi JSL non funziona correttamente in JMP 11, ma funziona dopo quella versione.
Ri: Hai bisogno di aiuto per selezionare la data.Jim,
Ho provato il tuo suggerimento e ancora i dati non sono stati filtrati.Di seguito è quello che ho usato.
Saluti,
Wayne
Ri: Hai bisogno di aiuto per selezionare la data.I valori della data JMP sono valori numerici.Se desideri confrontare un valore in "Data di accesso" con un valore di data, devi convertire il valore di "Data di accesso" in una stringa di caratteri e comprenderlo in "01/07/2018" oppure mantenerlo come numerico e convertire "01/07/2018" in un valore numerico di data e ora.Lo script seguente esegue la selezione utilizzando la metodologia precedente
Column( "Login Date" ) << data type( numeric ) << Format( "m/d/y" );
MyList = {"HCDS", "HCDS;LENNY", "HCDS; WACKER", "HCDS; GOLDEN SAMPLE", "HCDS; ALJ", "HCDS; LENNY C",
"HCDS; WACKER; GOLDEN SAMPLE", "HCDS; WACKER; PRE-MOVE"};
dt6 << Select where( (Contains( MyList, :Site ID )) & :Analysis == "G4" );
dt6 << Select where( format(Column( "Login Date" )[Row()], "M/D/Y" ) == "01/07/2018", current selection( "extend" ) );
dt7 = dt6 << Subset( Output Table( "Aloha Lenny Assay Subset" ), Selected Rows( 1 ), Selected Columns( 0 ) );
dt7 << select where( Is Missing( :Label ID ) ) << delete rows;
selrows = dt7 << get rows where( :Formatted Entry == "ND" );
dt7:Formatted Entry[selRows] = "0";
dt7:Formatted Entry << data type( Numeric );