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

Requêtes MySQL Discussion :

Requete HAVING SUM


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 6
    Points : 8
    Points
    8
    Par défaut Requete HAVING SUM
    Bonjour,

    Je rencontre des problèmes avec l'utilisation de HAVING SUM.

    Voici ma table :

    +----+------------+--------+
    | id | date | number |
    +----+------------+--------+
    | 1 | 2010-01-02 | 0 |
    | 2 | 2010-01-03 | 3 |
    | 3 | 2010-01-04 | 0 |
    | 4 | 2010-01-05 | 2 |
    | 5 | 2010-01-06 | 1 |
    | 6 | 2010-01-07 | 3 |
    +----+------------+--------+

    Je souhaite afficher la date quand l'addition de plusieurs number = 6 par exemple, a partir d'une date de départ.

    Donc dans ce cas, retourner la valeur 2010-01-07 (avec en date de départ 2010-01-04) car :
    2 (2010-01-05) + 1 (2010-01-06) + 3 (2010-01-07) = 6

    J'ai essayé la requete suivante sans succès :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT date, SUM(number) AS total FROM MyTable 
    GROUP BY date
    HAVING SUM(number) = 6
    Merci

    Pierre

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour

    Vous pouvez faire comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELECT MIN(date)
    FROM (
    	SELECT A.date, SUM(B.number) AS somme
    	FROM MyTable A
    	LEFT JOIN MyTable B
    		ON B.date <= A.date
    	WHERE B.date >= '2010-01-04'
    	GROUP BY A.date
    ) T
    WHERE somme >= 6

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 6
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par aieeeuuuuu Voir le message
    Bonjour

    Vous pouvez faire comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELECT MIN(date)
    FROM (
    	SELECT A.date, SUM(B.number) AS somme
    	FROM MyTable A
    	LEFT JOIN MyTable B
    		ON B.date <= A.date
    	WHERE B.date >= '2010-01-04'
    	GROUP BY A.date
    ) T
    WHERE somme >= 6

    Ca fonctionne, merci

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

Discussions similaires

  1. [HAVING] SUM différent de autre champ
    Par Romalafrite dans le forum Requêtes
    Réponses: 2
    Dernier message: 20/05/2008, 17h36
  2. Requete COUNT + SUM
    Par Seth77 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 27/05/2007, 04h42
  3. probleme requete SELECT SUM
    Par Sophie2097 dans le forum Requêtes
    Réponses: 1
    Dernier message: 03/11/2006, 15h14
  4. 1 requete : 2 sum, mais sur le meme champ ...
    Par aergil dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/03/2006, 16h21
  5. Probleme avec requete et sum
    Par Treuze dans le forum Langage SQL
    Réponses: 1
    Dernier message: 09/01/2006, 17h28

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