Comment sélectionner des lignes entre des plages de datesBonjour à tous,
J'essaie de comprendre comment sélectionner des lignes spécifiques à une plage de dates en utilisant les données d'une colonne par dernière date.
Existe-t-il un moyen de le faire dans une boucle for?

Re : Comment sélectionner des lignes entre des plages de datesMerci Jim,
Solution très simple, depuis la façon dont les mesures sont prises, j'ai plusieurs paramètres qui ont répété la date maximale. Cela a fonctionné de toute façon. Vous trouverez ci-dessous le script que j'ai créé, mais j'ai créé un autre cauchemar logique en choisissant quelle table de sous-ensemble a l'ID de pièce le plus récent. Votre solution était beaucoup plus simple.
dt = data table ("XYZ");
// Get unique values
uVals = AssociativeArray(:Part ID << getValues) << getKeys;
// Make Subset Tables
for(g = 1, g <= NItems(uVals), g++,
r2get = dt << getRowsWhere(:Part ID == uVals[g]);
dt2 = dt << subset(Rows(r2get));
dt2 << setName("subset ");
Re : Comment sélectionner des lignes entre des plages de datesVous pouvez utiliser des expressions booléennes comme argument de la << Sélectionnez Où message. Autrement dit, vous pouvez utiliser la logique et , ou , et pas fonctions ou opérateurs pour obtenir à la fois la date et le produit qui répond aux deux critères. S'il s'agit d'une recherche de série, vous devrez peut-être d'abord trouver la dernière date et l'utiliser pour trouver l'ID du produit.
Vous pouvez utiliser le << Obtenir des lignes où ( ... ) message pour renvoyer les numéros de ligne correspondant à votre critère de date. Vous pouvez utiliser ce vecteur pour inscrire ces lignes à partir de la colonne de données afin d'obtenir tous les ID de pièce sous forme de liste. Ensuite, examinez la liste pour trouver celui que vous voulez.
Re : Comment sélectionner des lignes entre des plages de datesJ'espère que j'interprète correctement votre question.Le script ci-dessous trouvera la ligne contenant le Part_ID de la date maximale, puis sélectionnera toutes les lignes contenant cette valeur Part_ID.
Names Default To Here( 1 );
dt = Current Data Table();
// Find the Row(s) that have the current Max Date
MaxRows = dt << get rows where( dt:Date == Col Max( dt:Date ) );
// MaxRows is a matrix that contains all of the rows that have the
// max date. Since your "Date" column is actually a date time
// value that contains minutes and seconds, it is doubtful that
// more than one row will have the Max value. However, we will
// now just get the last row from that matrix
TheRow = MaxRows[N Rows( MaxRows )];
// Now we can get the Part_ID for the row in question
TargetPartID = dt:Part_ID[TheRow];
// Now select all rows that have that Part_ID
dt << seleect where( dt:Part_ID == TargetPartID );
Re : Comment sélectionner des lignes entre des plages de datesJe suppose que je ne me suis pas trop bien expliqué.
Je veux d'abord sélectionner toutes les lignes avec la dernière date ;
dt << select where(name ("Date") == col Max(:Date));
Ensuite, je veux sélectionner uniquement les lignes avec le PART ID qui correspond au dernier PART ID (id est la date max)
Re : Comment sélectionner des lignes entre des plages de datesJe suppose que je ne me suis pas trop bien expliqué.
Je veux d'abord sélectionner toutes les lignes avec la dernière date ;
dt << select where(name ("Date") == col Max(:Date));
Ensuite, je veux sélectionner uniquement les lignes avec le PART ID qui correspond au dernier PART ID (id est la date max)
Re : Comment sélectionner des lignes entre des plages de datesDans ce cas, si les dates sont fixes, vous pouvez utiliser une valeur littérale ou constante. Elle ressemble à la chaîne ci-dessus, mais elle n'est pas entre guillemets doubles. JMP interprétera (et affichera) cette valeur comme la date et l'heure appropriées. C'est-à-dire qu'il vous suffit d'entrer
Date > 20Dec2015:00:00:00
dans ce cas. Cette méthode est plus concise et élimine le besoin de gérer les formats et les préoccupations. Vous n'avez pas non plus besoin d'utiliser la spécification complète. Cela suffit :
Date > 20Dec2015
Re : Comment sélectionner des lignes entre des plages de datesVoici une solution simple utilisant Select Where :
Names Default To Here( 1 );
dt = Current Data Table();
dt << select where(
:Date > Informat( "20Dec2015:00:00:00", "MDYHMS" ) &
:Date <= Informat( "20Dec2016:00:00:00", "MDYHMS" )
);
Vous pouvez également accomplir cela de manière interactive en utilisant le menu déroulant du tableau de données :
Lignes==>Sélection de ligne==>Sélectionner où
Re : Comment sélectionner des lignes entre des plages de datesL'intention spécifique est de séparer le nouvel ID de pièce de l'ancien ID de pièce