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 :

Résultat de plusieurs requêtes (count) sur la même colonne


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Décembre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux

    Informations forums :
    Inscription : Décembre 2015
    Messages : 10
    Points : 30
    Points
    30
    Par défaut Résultat de plusieurs requêtes (count) sur la même colonne
    Bonjour,

    J'aimerai avoir dans un seul affichage le résultat de plusieur requêtes sur la même colonn et affiche les resultat en excel si possible.

    Code sql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select count(*) from table1 where job='A'
    select count(*) from table1 where job='B'
    select count(*) from table1 where job='C'
    .
    .
    .
    select count(*) from table1 where job='k'
    select count(*) from table1 where job='L'
    Si quelqu'un connait la syntaxe pour arriver à ce résultat je suis preneur.
    Par avance merci.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Si tu ne veux que les comptages il suffit d'ajouter UNION ALL entre chaque ligne.
    Mais tu n'es pas sur de l'ordre des lignes (si c'est utile).

    Je te proposerais plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT  job
        ,   COUNT(*) AS nb
    FROM    table1
    GROUP BY job
    ORDER BY job
    ;
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Décembre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux

    Informations forums :
    Inscription : Décembre 2015
    Messages : 10
    Points : 30
    Points
    30
    Par défaut
    merci pour votre repance,

    mais je dois specifie job

    exemple
    1er resultat quand job=A
    2eme resultat quand job = M
    3eme resultat quand job= X

    plus je ne dois pas affiche le resultat quand job=E

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Il suffit d'ajouter une clause WHERE, entre le FROM et le GROUP BY.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Décembre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux

    Informations forums :
    Inscription : Décembre 2015
    Messages : 10
    Points : 30
    Points
    30
    Par défaut
    ça marche pas avec moi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT  job
        ,   COUNT(*) AS nb
    FROM    table1
    where job=A, job=B
    GROUP BY job
    ORDER BY job
    ;

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Je ne peux que t'encourager à aller te documenter sur la clause WHERE en particulier et le langage SQL en général.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Décembre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux

    Informations forums :
    Inscription : Décembre 2015
    Messages : 10
    Points : 30
    Points
    30
    Par défaut
    vraiment que je suis coincée; vous pouvez m'aide SVP

  8. #8
    Membre éclairé Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Points : 870
    Points
    870
    Par défaut

    structure du where :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE qlqchose AND qlqchose OR qlqchosed'autre

  9. #9
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 909
    Points
    38 909
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par bstevy Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE qlqchose AND qlqchose OR qlqchosed'autre
    Oui mais à condition d'ajouter des parenthèses, les combinaisons AND/OR sans parenthèses sont la source de bien des maux

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Décembre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux

    Informations forums :
    Inscription : Décembre 2015
    Messages : 10
    Points : 30
    Points
    30
    Par défaut
    bonjour mon frere, merci beaucoup pour ta repance

    Voici un exemple

    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
    21
    22
    23
    24
    select job from id_job
    +-------+-----+
    | id_job | job |
    +-------+-----+
    |  1      |   1 |
    |  2      |   2 |
    |  3      |   3 |
    |  4      |   4 |
    +-------+-----+
    
    select * from test
    +----+-----+--------+
    | id | job | lib    |
    +----+-----+--------+
    |  1 |   1 | rouge  |
    |  2 |   1 | vert   |
    |  3 |   1 | rouge  |
    |  4 |   1 | vert   |
    |  5 |   2 | bleu   |
    |  6 |   2 | noir   |
    |  7 |   2 | rose   |
    |  8 |   3 | violet |
    |  9 |   3 | marron |
    +----+-----+--------+

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    select job, count(*)
    from test
    where job in (1,3)
    group by job
    order by job desc
    --------------
     
    +-----+----------+
    | job | count(*) |
    +-----+----------+
    |   3 |        2 |
    |   1 |        4 |
    +-----+----------+

    Mais Normalement le résultat s'affiche comme dans l'illustration

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    +-----+----------+
    | job | count(*) |
    +-----+----------+
    |   3 |        2 |
    |   1 |        4 |
    |   4 |        0 |
    +-----+----------+
    vous pouviez m'aider svp

  11. #11
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 909
    Points
    38 909
    Billets dans le blog
    9
    Par défaut
    comment voulez vous que la requête affiche la ligne que vous avez ajouté en rouge, alors que
    - votre table test ne contient pas de valeur 4
    - votre filtre (where) sélectionne uniquement les valeurs 1 et 3

    Le résultat est donc tout à fait conforme au contenu de la table test et à votre filtrage

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Décembre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux

    Informations forums :
    Inscription : Décembre 2015
    Messages : 10
    Points : 30
    Points
    30
    Par défaut
    oui je sais, mais il n y'a pas une solution pour cella,

    lorsque j'ai utilise cette code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT COUNT(*) from job where job=4 as count1
    +-------+
    |count1 |
    +-------
    |  0      | 
    +-------+
    la résultat s'affiche "0"

    merci beaucoup

  13. #13
    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 quelque chose comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SELECT 
        T.j
        , COUNT(test.job) AS Nb
    FROM (
        SELECT 1 as j
        union all select 3
        union all select 4
    ) AS T
    LEFT OUTER JOIN test
        ON test.job = T.j
    GROUP BY T.j

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

Discussions similaires

  1. [PDO] Plusieurs requêtes PDO sur une même page PHP
    Par Soso_ dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 30/04/2014, 13h45
  2. Réponses: 3
    Dernier message: 26/07/2011, 13h58
  3. Réponses: 3
    Dernier message: 27/08/2010, 13h54
  4. Réponses: 2
    Dernier message: 05/04/2008, 17h33
  5. 2 requêtes count() sur la même ligne
    Par nanard110 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/08/2007, 15h18

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