Sous-ensembles pour un datatable<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Salut à tous,
Je suis assez novice en matière de codage JMP et j'ai besoin de votre aide pour résoudre ce problème.
Ce que j'essaie essentiellement de faire, c'est d'importer un fichier Excel et de le sauvegarder en tant que fichier pouvant être daté. Ce que j'obtiens en utilisant cette commande.
Base de données ouverte ("DSN = Fichiers Excel; DBQ =" xyz ".xlsm; DriverId = 1046; MaxBufferSize = 2048; PageTimeout = 5;", "SELECT * FROM" CPASU par file d'attente '' "," CPASU par file d'attente $ ");
jusqu'ici tout va bien.
puis à partir de la table de données CPASU par file d'attente créée - J'essaie de créer un sous-ensemble de cette table de données à l'aide de la commande suivante
(Table de données ("CPASU par file d'attente $") << CHOISIR OU (FWEEK> 201201, Précision de la prévision> 0)
<< Sous-ensemble (
Lié,
Nom de la table en sortie ("Sous-ensemble de précision de la prévision $")));
Maintenant, lorsque j'exécute ces commandes, je suis parfaitement capable de créer la table de données CPASU par file d'attente, ainsi que la table de sous-ensembles de précision de prévision. Cependant, les lignes renvoyées dans la table de sous-ensembles ne sont pas renvoyées conformément à la condition que j'ai donnée dans la clause select. Il renvoie toutes les lignes de la table de données principale (CPASU par file d'attente) ...
Quelqu'un peut-il m'aider s'il vous plaît à trouver celui-ci?
De plus, s'il existe un livre que je peux suivre pour comprendre JMP JSL ... J'ai essayé de suivre le script créé automatiquement par l'interface graphique de JMP, mais cela a été un cauchemar jusqu'à présent.
Merci d'avance pour toute l'aide.
Re: Sous-ensembles pour un datatableVotre déclaration SI a fermé les parenthèses trop tôt et il vous manquait une virgule:
si ( found_rows > 0
dp << sous-ensemble ( nom de la table de sortie ( "Sous-ensemble de précision des prévisions $" )) ;
)
Re: Sous-ensembles pour un datatableOk, le problème a refait surface ... Je ne sais pas vraiment ce qui est arrivé au code
dp = Tableau de données ( "CPASU par file d'attente $" ) << SÉLECTIONNER O ( ET ( FWEEK > 201201 , Non masqué ! = 0 )) ;
found_rows = maintenant ( dp << Obtenir les lignes sélectionnées ) ;
si ( found_rows > 0 )
dp << sous-ensemble ( nom de la table de sortie ( "Sous-ensemble de précision des prévisions $" )) ;
CPASU par file d'attente est un fichier de données créé à partir d'un fichier Excel plus tôt dans le code. S'il vous plaît aider.
Merci,
Re: Sous-ensembles pour un datatableN'oubliez pas de marquer la réponse comme résolue après de bons conseils et de marquer la bonne réponse ainsi que des réponses utiles également (= rend l'utilisation du forum plus efficace)!
Re: Sous-ensembles pour un datatableoui je pense que le problème était dans la mise de la parenthèse ... Cela a fonctionné maintenant ... Merci ..
Re: Sous-ensembles pour un datatableIl semble que vous ayez égaré des parenthèses dans le deuxième sous-ensemble sélectionné. Vous devez mettre And () dans Sélectionnez Where ().
Comme ça:
dp = Tableau de données ( "CPASU par file d'attente $" ) << SÉLECTIONNER O ( Et ( FWEEK > 201201 , Pas de masquage ! = 0 ) ) ;
Re: Sous-ensembles pour un datatableJ'ai essayé de le faire mais cela ne donne toujours pas de nouveau résultat. Vous trouverez ci-dessous le code complet.
// - Ouvrir le fichier et établir une connexion dans JMP.
Base de données ouverte ("DSN = Fichiers Excel; DBQ = C: \ Utilisateurs \\ Documents \\ Analyse JMP \ XXX.xlsm; DriverId = 1046; MaxBufferSize = 2048; PageTimeout = 5;", "SELECT * FROM" CPASU par file d'attente. $ '`", "CPASU par file d'attente $");
// Crée le 1er sous-ensemble
(Table de données ("CPASU par file d'attente $") << Sélectionnez où (ET (FWEEK> = 201201, FWEEK! = 201248, FWEEK! = 201247, FWEEK! = 201243, CPASU réel> 0)) << Sous-ensemble (lié) ;
Current Data Table (Table de données ("Sous-ensemble de CPASU par file d'attente $")));
// Crée le 2ème sous-ensemble pour la précision des prévisions
dp = (Table de données ("CPASU par file d'attente $") << SELECT WHERE AND (FWEEK> 201201, Pas de masquage! = 0));
found_rows = nrows (dp << Obtenir les lignes sélectionnées);
si (lignes_trangement> 0,
// puis
dp << sous-ensemble (nom de la table de sortie ("Sous-ensemble de la précision des prévisions $")),
// autre
write ("Aucune ligne n'a été sélectionnée")
)
Le problème est dans le deuxième sous-ensemble. Bien qu'il crée le deuxième sous-ensemble, il renvoie le même ensemble de résultats que la requête du premier sous-ensemble et je suis presque certain que dans la table de données CPASU par file d'attente, plusieurs lignes correspondent à la condition SQL de SELECT WHERE AND (FWEEK> 201201 Pas de masquage! = 0));
S'il vous plaît aider .... Merci
Re: Sous-ensembles pour un datatableVous ne devez créer un sous-ensemble que si des lignes ont été trouvées pour votre recherche. Si aucune ligne n'a été trouvée, le sous-ensemble sera simplement identique à votre table d'origine. Vous avez besoin de quelque chose comme ça. J'ai inclus des améliorations de code pour la lisibilité.
dt = Ouvrir la base de données ( "DSN = Excel Files; DBQ =" xyz ".xlsm; DriverId = 1046; MaxBufferSize = 2048; PageTimeout = 5;" ,
"SELECT * FROM` 'CPASU by queue $' `" , "CPASU par file d'attente $" ) ;
// Sélectionnez les lignes selon votre condition
dt << sélectionner où ( : FWEEK > 201201 Et : Précision de la prévision > 0 ) ;
// Voir si des lignes ont été sélectionnées
found_rows = maintenant ( dt << Obtenir les lignes sélectionnées ) ;
si ( found_rows > 0 ,
// puis
dt << sous-ensemble ( nom de la table de sortie ( "Sous-ensemble de précision des prévisions $" )) ,
// autre
impression ( "Aucune ligne n'a été sélectionnée" )
) ;
Il existe plusieurs excellents livres de scripts JMP. Le manuel PDF de script JMP est fourni avec JMP, mais il existe également le livre Sautez dans les scripts JMP (r) par Wendy Murphrey et Rosemary Lucas, ISBN 978-1-59994-658-0