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 :

Passage lignes résultats en colonne


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 103
    Points : 66
    Points
    66
    Par défaut Passage lignes résultats en colonne
    Bonsoir,

    Bon mon titre est pas très clair, je savais pas quoi mettre. Je vous explique:
    J'ai 3 tables, "droits", "droits_groupes" et "groupes"
    droits
    • id
    • name

    droits_groupes (une table de liaison)
    • id_droit
    • id_groupe

    groupes
    • id
    • name


    Pour les données, par exemple
    droits(id:name) 1:create, 2:update, 3:delete
    groupes(id:name) 1:admin, 2:webmaster, 3:membres, 4:invites
    droits_groupes(id_droit:id_groupe) 1:1, 2:1, 3:1, 2:1, 3:1

    J'aimerai, en 1 requête, retourner:
    Les champs: droits.name / admin / webmaster / membres / invites
    create / 1 / 1 / 1 / 0
    update / 1 / 0 / 0 / 0
    delete / 1 / 0 / 0 / 0

    Donc un SELECT d.name FROM droits AS d LEFT JOIN ..... la jointure.
    J'ai déjà fait ça, avec des CASE groups.id IS NOT NULL THEN 1 ELSE 0, un truc comme ça, mais c'est il y a longtemps, on m'avait aidé, et je me souviens plus

    Quelqu'un aurait une idée? J'ai été clair? pas évidement à expliquer!
    L'idée est de retourner un tableau,avec en colonne, les groupes, en lignes les droits, et dans les cases, 1 si le groupe à le droit, 0 dans le cas contraire.

    Précision: Je suis sous MySQL, la dernière version!

    Merci

    Mathieu

  2. #2
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    Un peu de lecture

    Pour le CASE.... C'est ici !

    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  3. #3
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 103
    Points : 66
    Points
    66
    Par défaut
    Yes, j'ai réussi! Bon j'ai bien compris qu'il faut pas trop faire ça, c'est pas le but du SGBDR de faire du cosmétique. Cette requête sera lancé rarement, et ça me simplifie la vie!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT r.name, 
    CASE dg.id_groupe WHEN 1 THEN "yes" ELSE "no" END AS "Administrateurs"
    CASE dg.id_groupe WHEN 2 THEN "yes" ELSE "no" END AS "Webmasters"
    CASE dg.id_groupe WHEN 3 THEN "yes" ELSE "no" END AS "Membres"
    CASE dg.id_groupe WHEN 4 THEN "yes" ELSE "no" END AS "Invités"
    FROM droits AS d
    LEFT OUTER JOIN droits_groupes AS dg ON d.id_droit = dg.id_groupe
    Merci

    Mathieu

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 30/04/2014, 03h48
  2. [XL-2007] Passage ligne colonne spécial
    Par issorp78 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/03/2013, 17h50
  3. copie ligne en colonne avec passage ligne automatique
    Par John Parker dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 26/10/2011, 10h37
  4. Afficher résultat en colonne -> en ligne
    Par Sanceray3 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/02/2011, 20h55
  5. Réponses: 2
    Dernier message: 25/01/2011, 12h04

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