IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AS/400 Discussion :

Query avec plein de doublons !


Sujet :

AS/400

  1. #1
    Débutant
    Inscrit en
    Mars 2007
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 258
    Points : 66
    Points
    66
    Par défaut Query avec plein de doublons !
    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 ?

  2. #2
    Membre éprouvé
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Octobre 2006
    Messages
    706
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2006
    Messages : 706
    Points : 1 025
    Points
    1 025
    Par défaut
    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 !

  3. #3
    Membre averti
    Homme Profil pro
    Analyste-Programmeur IBM i, IBM Cognos TM1
    Inscrit en
    Août 2002
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste-Programmeur IBM i, IBM Cognos TM1
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2002
    Messages : 234
    Points : 355
    Points
    355
    Par défaut
    Bonjour,

    Donne ton query et après on pourra aviser.

    Larry57

  4. #4
    Membre actif
    Homme Profil pro
    Architecte technique & logiciel IBM i
    Inscrit en
    Septembre 2010
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte technique & logiciel IBM i
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2010
    Messages : 179
    Points : 275
    Points
    275
    Par défaut
    Citation Envoyé par m4k-Hurrican Voir le message
    Bonjour,
    Déjà quel intérêt d'utiliser encore Query ?
    !
    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)

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 22
    Points : 19
    Points
    19
    Par défaut
    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.

Discussions similaires

  1. Réponses: 27
    Dernier message: 06/05/2012, 13h07
  2. Plusieurs sous-programmes ou un programme avec plein de conditions ?
    Par svagrim dans le forum Langages de programmation
    Réponses: 13
    Dernier message: 09/07/2007, 20h26
  3. Query avec un CREATE TEMPORARY TABLE = erreur ?
    Par d3mone dans le forum Bases de données
    Réponses: 2
    Dernier message: 16/05/2007, 20h11
  4. [Visual Web] Query avec deux paramètres
    Par eponette dans le forum NetBeans
    Réponses: 1
    Dernier message: 19/03/2007, 14h44
  5. optimisation query avec BETWEEN
    Par maxtin dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 13/01/2007, 02h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo