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

Langage SQL Discussion :

faire une somme pour une période


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 416
    Points : 63
    Points
    63
    Par défaut faire une somme pour une période
    Bonjour,

    Je dois effectuer une requête sql qui doit m'afficher une somme totale pour une période définie entre 2 dates (qui ont été sélectionnées via 2 combo).

    Je m'explique :
    - par exemple pour la période comprise entre janvier et mars (combo 1 : mois sélectionné = janvier et combo 2 : mois sélectionné = avril ; c'est à dire que l'on prend donc de ... jusqu'à... le mois sélectionné - 1), je dois effectuer une somme de montants repris dans le champ amounteur.

    -Je voudrais qu'il ne m'affiche qu'un seul montant, c'est à le total pour toute la période.

    -Mais à la place de cela, il m'affiche pour chaque mois compris entre les 2 mois choisis, un total par mois et en plus, le total général.
    Ce que j'ai besoin : c'est uniquement du total général.

    Voici mes lignes de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $select = "SELECT DISTINCTROW Zonana1, Category, SUM(Amounteur) AS TOTAL, Number, Period FROM data_anf LEFT JOIN data_ant ON Number = Zonana1
    		   GROUP BY Zonana1, Category, Number, Period HAVING Zonana1 <> 'S COUV' AND Category = 'CHANT' AND Period >= '$PERIOD1' AND Period < '$PERIOD2'";
    Sans mettre de période, j'ai le total sur une ligne, mais avec les périodes, cela ne fonctionne plus.
    Pourriez-vous m'aider ?

  2. #2
    Membre averti Avatar de Sekigawa
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 432
    Points : 359
    Points
    359
    Par défaut
    Enleve ce que tu ne veux pas qui s'affiche dans ton "select"...
    Enfin je crois dans ton group by tu peux mettre des champs qui ne s'afficheront pas donc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $select = "SELECT SUM(Amounteur) AS TOTAL FROM data_anf LEFT JOIN data_ant ON Number = Zonana1
    		   GROUP BY Zonana1, Category, Number, Period HAVING Zonana1 <> 'S COUV' AND Category = 'CHANT' AND Period >= '$PERIOD1' AND Period < '$PERIOD2'";
    A tester biensûr ^^

  3. #3
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 416
    Points : 63
    Points
    63
    Par défaut
    j'ai essayé, mais il m'indique alors que zonana1 n'existe pas.

  4. #4
    Membre averti Avatar de Sekigawa
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 432
    Points : 359
    Points
    359
    Par défaut
    A quoi correspond Zonana1 ??

  5. #5
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 416
    Points : 63
    Points
    63
    Par défaut
    c'est un champ de ma table, mais elle ne doit pas figurer à l'affichage et elle n'y figure d'ailleurs pas.
    Je continue également à chercher de mon côté.
    Est-ce que je ne devrais pas utiliser l'instruction "where" ?

  6. #6
    Membre averti Avatar de Sekigawa
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 432
    Points : 359
    Points
    359
    Par défaut
    Ah lolol J'avais pas vu ^^
    Bon ptit cours
    "Having" fonctionne que pour les calculs donc si tu doit faire une selection sur un calcul tu l'utiliseras... aprés le group by biensur
    "Where" est une selection sur un champs classique avant le group by ^^

  7. #7
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 416
    Points : 63
    Points
    63
    Par défaut
    ok, d'accord avec toi mais je ne m'y connais pas bien en sql.
    Comment dois-je rédiger mon select pour qu'il ne m'affiche qu'un montant total des différents montants repris pour les mois compris entre le mois 1 et le mois 2 (choisis dans les combos) ?
    Je deviens fou car je suis occupé avec ça depuis ce matin

  8. #8
    Membre averti Avatar de Sekigawa
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 432
    Points : 359
    Points
    359
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT SUM(Amounteur) AS TOTAL 
    FROM data_anf LEFT JOIN data_ant ON Number = Zonana1
    Where Zonana1 <> 'S COUV' AND Category = 'CHANT' AND Period >= '$PERIOD1' AND Period < '$PERIOD2'
    GROUP BY Period ;
    Essaye ça pour tester mais bon je suis pas sur j'ai pas lhabitude des "LEFT JOIN" ^^

  9. #9
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 416
    Points : 63
    Points
    63
    Par défaut
    toujours le même écran blanc ...

  10. #10
    Membre averti Avatar de Sekigawa
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 432
    Points : 359
    Points
    359
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $select = "SELECT DISTINCTROW Zonana1, Category, SUM(Amounteur) AS TOTAL, Number, Period FROM data_anf LEFT JOIN data_ant ON Number = Zonana1
                                 WHERE Zonana1 <> 'S COUV' AND Category = 'CHANT' AND Period >= '$PERIOD1' AND Period < '$PERIOD2'
    		   GROUP BY Zonana1, Category, Number, Period";
    Avec ta requête de départ ??

  11. #11
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 416
    Points : 63
    Points
    63
    Par défaut
    le problème avec ce select, c'est qu'il ne fait pas 1 total, mais 1 total pour chaque mois et par chaque catégorie, alors que moi je voudrais qu'il fasse le total de tout.

  12. #12
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 416
    Points : 63
    Points
    63
    Par défaut
    Voici le dernier select que j'ai utilisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $select = "SELECT DISTINCTROW Zonana1, Category, SUM(Amounteur) AS TOTAL, Number, Period FROM data_anf LEFT JOIN data_ant ON Number = Zonana1
    		   GROUP BY Zonana1, Category, Number, Period HAVING Zonana1 <> 'S COUV' AND Category = 'CHANT' AND Period >= '$PERIOD1' AND Period < '$PERIOD2'";
    Et voici ce que j'obtiens :

    Resultat de la recherche



    Frais de Siège -147294.210
    64493.000
    58300.000
    -5000.000
    -69260.330
    24200.000
    22700.000
    90000.000
    1000.000
    -3250.000
    -65000.000
    -3250.000
    -48000.000
    -67000.000
    104946.940
    -371528.930
    6800.000
    -1250.000
    40000.000
    -39305.790
    50348.940
    3500.000
    100000.000

  13. #13
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 416
    Points : 63
    Points
    63
    Par défaut
    Il devrait donc me faire le total de tous ces montants et l'afficher.

  14. #14
    Membre averti Avatar de Sekigawa
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 432
    Points : 359
    Points
    359
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $select = "SELECT SUM(Amounteur) AS TOTAL FROM data_anf LEFT JOIN data_ant ON Number = Zonana1
                                 WHERE Zonana1 <> 'S COUV' AND Category = 'CHANT' AND Period >= '$PERIOD1' AND Period < '$PERIOD2'";
    On va peut être y arriver ^^

  15. #15
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 416
    Points : 63
    Points
    63
    Par défaut
    SUPER c'est juste.
    Mille mercis

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

Discussions similaires

  1. [SP-2010] Faire une somme sur une colonne d'une liste
    Par sebfreu dans le forum SharePoint
    Réponses: 6
    Dernier message: 19/01/2012, 11h05
  2. [XSLT] Faire la somme d'une valeur pour un ensemble de noeuds
    Par thierry_b dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 10/03/2009, 09h45
  3. XI - Extraire une somme dans une periode pour faire une addition
    Par campia dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 06/12/2007, 16h41
  4. faire la somme d'une colonne d'une listbox
    Par Namson dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 25/04/2007, 23h34
  5. Réponses: 6
    Dernier message: 07/07/2006, 17h36

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