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 :

Compter différentes valeur d'une table


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 314
    Par défaut Compter différentes valeur d'une table
    Je cherche à compter les enregistrements d'une table en fonction de 2 caractéristiques.

    Cas n°1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select count(*) from matable WHERE condition1 = 1 and condition2 = 2
    Cas n°2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select count(*) from matable WHERE condition1 = 1 and condition2 = 4
    Cas n°3 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select count(*) from matable WHERE condition1 = 1 and condition2 = 4
    j'aimerais récupérer toutes ces quantité sans devoir effectuer 3 requettes ... est ce possible ?


    merci

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Oui vous pouvez faire ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select condition1, condition2, count(*)
    from matable
    group by condition1, condition2

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 314
    Par défaut
    Je ne vois pas trop comment procéder peut être je n'ai pas été assez précis.

    Voici mes requettes précise :
    Requette 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT count(*) 
    from developph_marchands_cp 
    WHERE TO_DAYS( now( ) ) - TO_DAYS( datefin ) < 1 
    AND (CAT = '1' OR CAT = '2' OR CAT ='0')
    Requette 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT count(*) 
    from developph_marchands_cp 
    WHERE TO_DAYS( now( ) ) - TO_DAYS( datefin ) < 1 
    AND CAT >= '4' AND CAT <= '16'
    Requette 3 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT count(*) 
    from developph_marchands_cp 
    WHERE TO_DAYS( now( ) ) - TO_DAYS( datefin ) < 1 
    AND CAT = 0
    Etc ...

    je ne vois pas comment tout combiner en une requête en pratiquant ta mise en forme ...

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Au temps pour moi, votre syntaxe m'avait amené à penser que condition1 était un champ.

    Dans vos requête, le champ CAT est-il numérique ?
    Si oui, il ne faut pas utiliser d'apostrophes pour préciser la valeur.

    Vous pouvez faire ainsi (je suppose que CAT est numérique) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT
        case when CAT in (0, 1, 2) then 'DANS {0,1,2}' else null end as cas1,
        case when CAT between 4 and 16 then 'ENTRE 4 ET 16' else null end as cas2,
        case when CAT = 0 then 'EGAL A 0' else null end as cas3,
        count(*)
    from developph_marchands_cp
    WHERE TO_DAYS( now( ) ) - TO_DAYS( datefin ) < 1
    GROUP BY
        case when CAT in (0, 1, 2) then 'DANS {0,1,2}' else null end,
        case when CAT between 4 and 16 then 'ENTRE 4 ET 16' else null end,
        case when CAT = 0 then 'EGAL A 0' else null end

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 314
    Par défaut
    Yes c'est un numérique .... autant pour moi aussi pour les apostrophes !

    Dans tous les cas ta requette à l'air de fonctionner !!

    Vous êtes balaise les mecs quand même, je sais pas comment vous faite !

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 314
    Par défaut
    Juste un dernier petit truc quand je n'ai pas de résultat dans ma requette je n'ai pas de valeur 0, ce qui fait varier la taille de mon tableau et ne me permet pas d'afficher les données sous cette forme echo $res[x][y]

    Vous avez peut etre une astuce ?

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

Discussions similaires

  1. [AC-2003] Compter des valeurs dans une table
    Par jmde dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 13/11/2013, 19h50
  2. Réponses: 7
    Dernier message: 12/07/2013, 16h24
  3. [AC-2007] Compter les valeurs d'une table dans un formulaire
    Par redwarf dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 01/11/2009, 19h57
  4. Réponses: 3
    Dernier message: 13/12/2006, 18h05
  5. Mettre la valeur d'une table dans une CString
    Par Lucier dans le forum MFC
    Réponses: 29
    Dernier message: 26/11/2004, 16h04

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