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

WinDev Discussion :

Requête SQL et SUM


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 65
    Par défaut Requête SQL et SUM
    Bonjour,

    J'ai un soucis pour intégrer une somme dans ma requête SQL (j'utilise MySQL pour me connecter à l'AS400).

    Voilà mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    Req = ChaîneConstruit([
    SELECT FICHIER1.ARTICLE,
    SUM(FICHIER1.QTE)
    FROM BIBLIO.FICHIER1 INNER JOIN BIBLIO.FICHIER2
    ON BIBLIO.FICHIER1.ARTICLE= BIBLIO.FICHIER2.ARTICLE
    WHERE FICHIER1.QTE<>0 
    AND FICHIER1.SITE = '1'
    GROUP BY FICHIER1.ARTICLE
    ])
    Si j'enlève SUM(FICHIER1.QTE) alors le reste fonctionne.

    Une idée ?

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 136
    Par défaut
    Citation Envoyé par windsor Voir le message
    (j'utilise MySQL pour me connecter à l'AS400)
    J'aimerais bien des détails sur cette phrase parce que là, je suis perplexe

    Citation Envoyé par windsor Voir le message
    SELECT FICHIER1.ARTICLE, SUM(FICHIER1.QTE)
    FROM BIBLIO.FICHIER1
    INNER JOIN BIBLIO.FICHIER2 ON BIBLIO.FICHIER1.ARTICLE=BIBLIO.FICHIER2.ARTICLE
    WHERE FICHIER1.QTE<>0
    AND FICHIER1.SITE = '1'
    GROUP BY FICHIER1.ARTICLE
    Quel est l'intérêt de la jointure sur BIBLIO.FICHIER2 ?
    Ok, ça teste l'existence de l'article dans FICHIER2 mais est-ce nécessaire ?

    Peut-être qu'en rajoutant / enlevant "BIBLIO.", c'est mieux...

    Sinon, si tu as le message d'erreur ça pourrais aider.

  3. #3
    Membre éprouvé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 998
    Par défaut
    Bonjour

    Pouvez essayer celle ci pour tester

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT FICHIER1.ARTICLE,SUM(FICHIER1.QTE)
    FROM BIBLIO.FICHIER1,BIBLIO.FICHIER2
    WHERE FICHIER1.QTE<>0 AND AND FICHIER1.SITE = '1'
    GROUP BY GROUP BY FICHIER1.ARTICLE
    Cela devrait fonctionner de cette manière vu que vous demandez une condition stricte.

    Bonne après midi
    Raptor92
    Dominique
    Aucune aide par MP, utilisez le forum.

    Mon guide du débutant pour apprendre à programmer en Java - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java


  4. #4
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 65
    Par défaut
    J'ai voulu simplifié un peu mon code pour plus de compréhension, en réalité je fait aussi un select sur le fichier 2 et la jointure est obligatoire dans mon cas.

    En fait, j'ai pa s de message d'erreur au moment de lancer ma requête mais j'ai aucun résultat (Ma table est vide).

    (Je rempli une table à partir de ma requête)

  5. #5
    Membre éprouvé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 998
    Par défaut
    Bonjour,

    En effet, j'ai oublié d'insérer la relation, pouvez tester ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT FICHIER1.ARTICLE,SUM(FICHIER1.QTE)
    FROM BIBLIO.FICHIER1,BIBLIO.FICHIER2
    WHERE FICHIER1.QTE<>0 AND AND FICHIER1.SITE = '1'
    AND BIBLIO.FICHIER1.ARTICLE= BIBLIO.FICHIER2.ARTICLE
    GROUP BY GROUP BY FICHIER1.ARTICLE
    Bonne journée
    Raptor92
    Dominique
    Aucune aide par MP, utilisez le forum.

    Mon guide du débutant pour apprendre à programmer en Java - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java


  6. #6
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 65
    Par défaut
    en fait, j'ai trouvé l'erreur dans ma requête initiale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    Req = ChaîneConstruit([
    SELECT FICHIER1.ARTICLE,
    SUM(FICHIER1.QTE)
    FROM BIBLIO.FICHIER1 INNER JOIN BIBLIO.FICHIER2
    ON BIBLIO.FICHIER1.ARTICLE= BIBLIO.FICHIER2.ARTICLE
    WHERE FICHIER1.QTE<>0 
    AND FICHIER1.SITE = '1'
    GROUP BY FICHIER1.ARTICLE, FICHIER1.QTE
    ])
    Il me manquait un regroupement sur la Qté du FICHIER1 qui était dans le SELECT.

    Merci quand même pour vos remarques, elle m'ont permis d'avancer.

  7. #7
    Membre Expert
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 395
    Par défaut
    Bonjour

    Citation Envoyé par windsor Voir le message
    en fait, j'ai trouvé l'erreur dans ma requête initiale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    Req = ChaîneConstruit([
    SELECT FICHIER1.ARTICLE,
    SUM(FICHIER1.QTE)
    FROM BIBLIO.FICHIER1 INNER JOIN BIBLIO.FICHIER2
    ON BIBLIO.FICHIER1.ARTICLE= BIBLIO.FICHIER2.ARTICLE
    WHERE FICHIER1.QTE<>0 
    AND FICHIER1.SITE = '1'
    GROUP BY FICHIER1.ARTICLE, FICHIER1.QTE
    ])
    Il me manquait un regroupement sur la Qté du FICHIER1 qui était dans le SELECT.

    Merci quand même pour vos remarques, elle m'ont permis d'avancer.
    Dans ce cas ton regroupement ne sert strictement à rien
    Tu fais une opération sur FICHIER1.QTE et tu le mets aussi dans le GROUP BY
    Et tu dis que ça marche ! C'est sensé faire quoi ?

    Le ChaîneConstruit ne sert à rien non plus puisqu'il n'y a aucun paramètre

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/07/2013, 16h56
  2. [AC-2003] Requête SQL avec SUM en fonction d'un attribut
    Par Linuss dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 30/05/2012, 09h10
  3. Requêtes SQL Transform SUM
    Par naroco dans le forum Débuter
    Réponses: 2
    Dernier message: 15/10/2010, 13h50
  4. Requête SQL avec UNION, sum et GROUP BY
    Par Guitariff dans le forum Langage SQL
    Réponses: 6
    Dernier message: 03/12/2006, 13h48
  5. Pb sur SUM dans requête SQL exécutée sous VB
    Par MAKSIM dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 14/11/2006, 17h07

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