Come faccio a confrontare i valori di una variabile con il valore di una colonna di tabellaHo quello che dovrebbe essere un semplice problema, ma non conosco il modo giusto per esprimerlo.
Ho alcune variabili;
A1 = "44";
A2 = "47";
A3 = "50";
//i numeri sono intenzionalmente in formato stringa
E una tabella di dati, dt, dove queste variabili sono incluse tra molte altre in una colonna, colonna "LOT".Se creo un ciclo for, per trovare queste variabili nella tabella e contrassegnare le righe quando vengono trovate, non riesco a trovarle..
For( i = 1, i <= 3, i++,
foundlot = "A" || Char( i );
Show( foundlot );
dt << Select Where( :LOT = foundlot ) << Colors = (5);
);
Mi rendo conto che il problema è che foundlot è una stringa "A1", "A2", "A3", ... e non sostituisce il valore di A1, A2 e A3 per consentire un confronto del valore di A1 con il valore della colonna sul tavolo.
Cosa dovrei fare per sostituire il valore, piuttosto che confrontare il valore della colonna con la stringa "A1" che non è sempre una corrispondenza?
Grazie per l'aiuto!
Tabella datiSceneggiaturaRe: Come faccio a confrontare i valori di una variabile con il valore di una colonna di una tabellaQuesto ha funzionato davvero bene. Grazie!
Re: Come faccio a confrontare i valori di una variabile con il valore di una colonna di una tabellaGrazie! Lo proverò!Re: Come faccio a confrontare i valori di una variabile con il valore di una colonna di una tabellaCredo che questi due semplici script di seguito gestiranno ciò che desideri.Il problema che stai riscontrando è la necessità di indicare che A1, A2 e A3 non sono valori variabili, ma sono i nomi di variabili.Lo script 1 lo farà per te.Il secondo script è probabilmente un modo migliore per pensare al tuo problema.Utilizzando un elenco JMP, è possibile fare riferimento al valore delle variabili utilizzando gli indici
names default to here(1);
dt=current data table();
A1 = "44";
A2 = "47";
A3 = "50";
For( i=1, i<=3, i++,
foundlot = "A" || char(i); Show (foundlot);
Eval(Parse(EvalInsert("\[dt << Select Where(:LOT == ^foundlot^, current selection("extend") ) ;]\")));
);
dt << colors( "red");
// or
names default to here(1);
dt=current data table();
aList = {"44", "47", "50" };
For( i=1, i<=3, i++,
dt << Select Where( :Lot == aList[i], current selection("extend"));
);
dt << colors( "red");