Jmp: seleziona dove<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao, proverei a generare una nuova tabella con selezionare dove in uno script e unire la tabella del sottoinsieme con un'altra
Riesco a generare uno script di successo tranne quando la riga Seleziona dove non trova con i criteri?
sai come posso saltare la parte della tabella di join nel mio script se seleziona dove non restituisce nulla
Saluti
sebastien
Re: Jmp: selezionare doveAltri due esempi usando Se ( ! è vuoto e il mio preferito Tentativo ( esempi di metodo:
I nomi predefiniti sono qui ( 1 ) ;
// apre la tabella dei dati e apporta alcune modifiche
dt = Aprire ( "$SAMPLE_DATA/Classe grande.jmp" ) ;
dt << imposta nome ( "tavolo" ) <<
Nuova Colonna ( "Peso altezza" , formula ( : il peso / : altezza ) ) ;
// apre un'altra tabella di dati
dt2 = Aprire ( "$SAMPLE_DATA/Classe grande.jmp" ) ;
dt2 << Seleziona dove ( : sesso == "Q" ) ;
dt3 = dt2 << Sottoinsieme (
Righe selezionate ( 1 ) ,
Solo colonne selezionate ( 0 )
) ;
Se ( ! è vuoto ( dt3 ) , //se le righe selezionate == 0 dt3 è una variabile vuota
dt4 = dt << Giuntura (
Con ( dt3 ) ,
Per colonne corrispondenti ( : nome = : nome ) ,
Rilascia multipli ( 0 , 0 ) ,
Includi non corrispondenze ( 0 , 0 ) ,
Mantieni l'ordine del tavolo principale ( 1 )) , //nessuna tabella stampa il registro degli errori
Stampa ( "Tabella sottoinsieme vuota" )
) ;
Tentativo ( dt4 = dt << Giuntura (
Con ( dt3 ) ,
Per colonne corrispondenti ( : nome = : nome ) ,
Rilascia multipli ( 0 , 0 ) ,
Includi non corrispondenze ( 0 , 0 ) ,
Mantieni l'ordine del tavolo principale ( 1 ))
, //cattura l'espressione
Stampa ( "Iscrizione fallita" )) ;
Re: Jmp: selezionare doveCiao seb38.cremer ,
SM ha dato la risposta giusta. eppure, se non fosse abbastanza esplicito il tuo quanto segue:
I nomi predefiniti sono qui ( 1 ) ;
// apre la tabella dei dati e apporta alcune modifiche
dt = Aprire ( "$SAMPLE_DATA/Classe grande.jmp" ) <<
imposta nome ( "tavolo" ) <<
Nuova Colonna ( "Peso altezza" , formula ( : il peso / : altezza ) ) ;
// apre un'altra tabella di dati
dt2 = Aprire ( "$SAMPLE_DATA/Classe grande.jmp" ) ;
// invece di usare select usa get rows where - è più robusto
scelto = dt2 << ottenere righe dove ( : età == 12 ) ;
// controlla se ne è stato scelto qualcuno. se sì sottoinsieme e join
Se ( Riga N ( scelto ) > 0 ,
dt3 = dt2 << sottoinsieme (
Righe ( scelto ) ,
colonne selezionate ( 0 ) // porta tutte le colonne
) ;
// ora unisciti
dt3 << Giuntura (
Con ( tabella dati ( "tavolo" ) ) ,
Per colonne corrispondenti ( : nome = : nome ) ,
Rilascia multipli ( 0 , 0 ) ,
Nome ( "Includi non corrispondenze" )( 0 , 0 ) ,
Mantieni l'ordine del tavolo principale ( 1 )
) ;
) ;
Re: Jmp: selezionare doveProbabilmente ci sono diversi modi per farlo. Ecco un'idea che dovrebbe funzionare se Seleziona Dove() sono stati applicati:
Se ( Riga N ( dt << Ottieni righe dove ( Selezionato ())) > 0 ,
dtsub << giuntura ( ... )
) ;
Un'altra idea senza Seleziona Dove() che crea un sottoinsieme solo se qualche riga corrisponde ai criteri (confronta con "F" al posto di "Q"):
dt = Aprire ( "$SAMPLE_DATA/Classe grande.jmp" ) ;
r = dt << ottenere righe dove ( : sesso == "Q" ) ;
Se ( Riga N ( r ) ,
( dt << sottoinsieme ( righe ( r ))) << giuntura ( Con ( dt ))
) ;