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 :

Afficher les résultats d'une requête comme des colonnes


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 18
    Points : 12
    Points
    12
    Par défaut Afficher les résultats d'une requête comme des colonnes
    Bonjour

    j'ai la structure suivante

    employer(nom , sex, categorie)

    je voudrais faire la requête suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(*) AS nombre, sex, categorie FROM employer GROUP BY sex, categorie
    mais je voudrais que le résultat soit sous le format suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    categorie         homme         femme 
    cadre              23                   14
    directeur          6                     7
    Je vous remercie

  2. #2
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 812
    Points : 34 084
    Points
    34 084
    Billets dans le blog
    14
    Par défaut
    Comme ça :
    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
    SELECT categorie, 
        SUM
        (
            CASE
                WHEN sex = 'homme' THEN 1
            END
        ) AS 'Hommes',
        SUM
        (
            CASE
                WHEN sex = 'femme' THEN 1
            END
        ) AS 'Femmes'
    FROM employer
    GROUP BY categorie

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    Bonjour
    en essayant sur php myadmin . j'ai la réponse suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #1305 - FUNCTION anepj.SUM does not exist
    sachant que anepj est le nom de ma base de donnée Mysql

  4. #4
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 812
    Points : 34 084
    Points
    34 084
    Billets dans le blog
    14
    Par défaut
    SUM est une fonction standard du SQL tout à fait supportée par MySQL.

    Tu peux donner la requête exacte que tu as lancée ?

  5. #5
    Membre habitué
    Inscrit en
    Mars 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mars 2003
    Messages : 281
    Points : 187
    Points
    187
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Comme ça :
    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
    SELECT categorie, 
        SUM
        (
            CASE
                WHEN sex = 'homme' THEN 1
            END
        ) AS 'Hommes',
        SUM
        (
            CASE
                WHEN sex = 'femme' THEN 1
            END
        ) AS 'Femmes'
    FROM employer
    GROUP BY categorie

    Comment faire la même chose quand on ne connait pas à l'avance les valeurs possible de la catégorie ?

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    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 123
    Points : 28 536
    Points
    28 536
    Par défaut
    On ne peut pas...

    A moins d'utiliser un SGBD qui propose la clause PIVOT, qui n'est pas connue de la norme du langage SQL.
    ...ce qui est cohérent avec le principe du SQL, où l'on doit connaître le nombre et la position des colonnes retournées.

  7. #7
    Membre habitué
    Inscrit en
    Mars 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mars 2003
    Messages : 281
    Points : 187
    Points
    187
    Par défaut
    Hélas je m'en doutais un peu. c'était au cas où une astuce m'aurait échappée.

Discussions similaires

  1. Afficher les résultats d'une requête ligne après ligne
    Par ThunderBolt_ dans le forum VBA Access
    Réponses: 9
    Dernier message: 02/08/2007, 14h28
  2. Réponses: 6
    Dernier message: 24/06/2007, 02h13
  3. Afficher le résultat d'une requête avec des côtes
    Par sweet_hell dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/10/2006, 11h32
  4. [SQL] Afficher les résultats d'une requête sur plusieurs pages
    Par mealtone dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 07/09/2006, 14h20
  5. Réponses: 5
    Dernier message: 14/06/2006, 16h19

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