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 :

changer lignes en colonnes [MySQL-5.0]


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier Avatar de LeGnome12
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 98
    Points : 109
    Points
    109
    Par défaut changer lignes en colonnes
    Bonjour, je vais exposer ma problématique en cherchant à simplifier au maximum.

    Soient trois tables :
    Client : idClient, libelleClient, codeDepartement
    Produit : idProduit, libelleProduit
    Achat : idAchat, idClient, idProduit, dateAchat, prixAchat (table pour la liaison n-n entre client et produit)

    Il y a un nombre limité de produits (trois dans notre exemple) mais, point important, le nombre de produits peut varier au cours du temps.

    Donc avec une requête classique on obtient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT c.libelleClient, p.libelleProduit, a.prixAchat
    FROM client c
      INNER JOIN achat a ON a.idClient = c.idClient
      INNER JOIN produit p ON p.idProduit = a.idProduit
     WHERE c.codeDepartement = 31


    Mais ce que je veux, c'est présenter mes données de la sorte :


    Quelqu'un a-t-il une idée ?

    Je sais que c'est techniquement possible de le gérer en php (ou autre langage supérieur) mais je veux (pour des contraintes techniques) le gérer avec MySQL.

    D'avance merci.
    Images attachées Images attachées   

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bonjour,

    Il faudra passer par une procédure stockée pour atteindre ce résultat.

    Pour la requête, il faudra arriver à générer dynamique ce genre de chose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select nom, 
    max(case when ma_cond1 = 'xxx' then ma_valeur end) as nom_colonne1,
    max(case when ma_cond2 = 'xxx' then ma_valeur end) as nom_colonne2,
    from ...

    Bref ça sera plus galère que de gérer ça en php.

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

Discussions similaires

  1. [2008] Changer lignes en colonnes
    Par schub1015 dans le forum Développement
    Réponses: 4
    Dernier message: 04/11/2013, 21h22
  2. Supprimer toutes les lignes et colonnes d'un tableau
    Par pekka77 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 01/12/2005, 11h26
  3. Tableau 5 lignes * 3 colonnes
    Par slackjayo dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 05/04/2005, 11h27
  4. Demande de conseil pour migration de lignes vers colonnes
    Par ririd dans le forum Administration
    Réponses: 6
    Dernier message: 04/11/2004, 17h02
  5. [TSynMemo] Positionnement par ligne et colonne
    Par Mercilius dans le forum Composants VCL
    Réponses: 9
    Dernier message: 16/04/2003, 16h22

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