|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Débutant
Inscription : mars 2007 Messages : 258 ![]() |
Bonjour à tous,
J’ai un problème dans une requête AS400, cette requête se présente de la façon suivante : Table Article Code article Nom article … Table Mouvement de stock Code article Type de mouvement Date du mouvement Je veux faire une extraction de ma base article, mais je ne veux que les articles qui ont au moins un mouvement de stock depuis 2010, donc au niveau de l’option « Choix des enregistrement, je rajoute la condition : « T06.MSDATE GE 20100000 ». Le problème est que le résulat est colossal car j’ai plusieurs lignes identiques qui correspondent à tous mes mouvements de stock (même si je ne les fais pas apparaître dans le résultat de ma requête)! Du coup, j’ai un résultat du style : -01- article 1 -01- article 1 -01- article 1 -01- article 1 -01- article 1 -01- article 1 -01- article 1 -01- article 1 -01- article 1 -01- article 1 -01- article 1 -01- article 1 -01- article 1 -02- article 2 -02- article 2 -02- article 2 -02- article 2 -03- article 3 -04- article 4 -04- article 4 -04- article 4 -04- article 4 -04- article 4 -04- article 4 -04- article 4 -04- article 4 …etc ! Pouvez-vous m’aider à résoudre ce problème svp ? |
|
|
00
|
|
|
#2 |
|
Membre régulier
![]() Inscription : octobre 2006 Messages : 115 ![]() |
Bonjour,
Déjà quel intérêt d'utiliser encore Query ? Ensuite, de quel Query parles tu ? C'est une commande OpnQryf, un Query/400 ? Ensuite je pense comprendre ton problème mais je n'en suis pas certain. Tu as fait une jointure pour pouvoir tester l'existence d'un mouvement, et tu as donc un enregistrement par mouvement, c'est bien çà ? Edit : Après relecture, je pense que tu parles d'un Query/400. Mazette j'ai plus utilisé çà depuis belle lurette ! Donc pour ton test je crois que c'est cuit dans un Query unique. Il faudrait faire un 1er Query qui extraierait les mouvements de stock (avec regroupement et tu demandes juste les totaux). Dans le 2ème query tu fais ta jointure en ne prenant que les enregistrements avec un total lvl 1, et çà roule. mais bon avec un SQL on aurait fait çà de manière bien plus simple ! |
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Analyste-Programmeur as/400 et Java Inscription : août 2002 Messages : 107 ![]() |
Bonjour,
Donne ton query et après on pourra aviser. Larry57 |
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Thomas Architecte technique Inscription : septembre 2010 Messages : 42 ![]() |
Effectivement, ce sera plus simple avec SQL ou QM (sauf pour la mise en page qui n'est pas très intuitive dans QM).
Sinon, dans QUERY/400, de mémoire, il faut faire un requête avec de champ de comptage, de total ou autre formule de "cumul" (Choisir les fonctions récapitulatives du rapport), Définir les ruptures de contrôle puis demander une requête récapitulative (Choisir le type et la nature de la sortie / Nature de la sortie : 2=Récapitulative) |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : juin 2009 Messages : 12 ![]() |
Non seulement QM offre cette possibilité mais aussi la mise en page avec la gestion de format.
Et d'ailleurs même au point de vue performance car QM utilise le moteur SQE cependant que query/400 utilisant la "brouette", le CQE. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com