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 :

GroupBy 2 résultat sur une même colonne


Sujet :

Requêtes MySQL

  1. #1
    Membre confirmé Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Points : 547
    Points
    547
    Par défaut GroupBy 2 résultat sur une même colonne
    Bonjour,

    Je cherche à savoir si le problème suivant peut trouver une solution. A savoir
    une table

    article valeur
    article 1 -1
    article 2 1
    article 3 -2
    article 1 2
    article 1 -3
    article 1 -4
    article 2 3
    article 3 4

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
     
    CREATE TABLE IF NOT EXISTS `test` (
      `article` text NOT NULL,
      `valeur` int(11) NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
     
    --
    -- Contenu de la table `test`
    --
     
    INSERT INTO `test` (`article`, `valeur`) VALUES
    ('article 1', -1),
    ('article 2', 1),
    ('article 3', -2),
    ('article 1', 2),
    ('article 1', -3),
    ('article 1', -4),
    ('article 2', 3),
    ('article 3', 4);

    Voilà une requête pour le nombre d'enregistrement négatif
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT t1.article, COUNT(t1.valeur) AS nombreEnregistrementNegatif
    FROM `test` AS t1
    WHERE t1.valeur < 0
    GROUP BY t1.article
    et une requête pour le nombre d'enregistrement positif
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT t1.article, COUNT(t1.valeur) AS nombreEnregistrementPositif
    FROM `test` AS t1
    WHERE t1.valeur > 0
    GROUP BY t1.article
    Ce que je veux c'est remplacer les 2 requêtes par une pour avoir le résultat

    t1.article | nombreEnregistrementNegatif | nombreEnregistrementPositif

    Ce qui devrait donner
    article 1 | 3 | 1
    article 2 | 0 | 3
    article 3 | 1 | 1

    Merci pour vos informations ;-)

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 281
    Points : 11 737
    Points
    11 737
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT t1.article, 
      SUM(CASE WHEN t1.valeur > 0 THEN 1 ELSE 0 END) AS nombreEnregistrementsPositifs,
      SUM(CASE WHEN t1.valeur < 0 THEN 1 ELSE 0 END) AS nombreEnregistrementsNegatifs
    FROM `test` AS t1
    GROUP BY t1.article
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  3. #3
    Membre confirmé Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Points : 547
    Points
    547
    Par défaut
    Bonjour Antoun,

    C'est pas la première fois que tu viens à mon secours... Alors encore une fois merci.

    Solution parfaite! Et en plus, en lisant la doc de MySQL sur le Case statement, tu viens de m'ouvrir de nouvelles perspectives

    respect

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 03/07/2009, 09h32
  2. Réponses: 2
    Dernier message: 05/04/2008, 17h33
  3. getdate() - Même résultat sur une même requête?
    Par Baquardie dans le forum Développement
    Réponses: 3
    Dernier message: 27/09/2007, 15h42
  4. getdate() - Même résultat sur une même requête?
    Par Baquardie dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 27/09/2007, 15h42
  5. Résultats dans une même colonne.
    Par souellet dans le forum Langage SQL
    Réponses: 6
    Dernier message: 10/03/2004, 19h51

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