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 :

Transformation de ligne en tableau


Sujet :

Langage SQL

  1. #1
    nma
    nma est déconnecté
    Membre régulier
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2002
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Mai 2002
    Messages : 225
    Points : 108
    Points
    108
    Par défaut Transformation de ligne en tableau
    Bonjour,

    Voila j'ai une table de lien standart
    id
    product_id
    categ_id

    Pour un product_id j'ai bien sur plusieur ligne possible.
    Ce que je voudrais faire !

    product_id categ_id_1 categ_id_2 categ_id_3 etc ....


    Est ce possible en sql ?

    Je suis en mysql 5

    Merci de votre aide.
    Nicolas

  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
    As-tu cherché un peu dans les discussions précédentes ?
    Ce que tu cherches à faire s'apparente à un PIVOT.
    Il manque toutefois un certain nombre d'informations pour proposer une solution, en particulier le critère permettant de définir dans quelle colonne categ_id_n ira telle valeur de categ_id.
    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
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    - C'est possible mais avec un nombre statique de colonne, il faut connaître le nombre de catégorie à pivoter
    - Ou alors générer la requête pivot.
    - Sinon GROUP_CONCAT
    - Le plus classique étant de gérer l'affichage dans le code client

  4. #4
    nma
    nma est déconnecté
    Membre régulier
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2002
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Mai 2002
    Messages : 225
    Points : 108
    Points
    108
    Par défaut
    Merci de ces réponses rapides et précises.

    En fait l'objectif final et de faire une exportation vers un fichier csv.
    Je ne connaissait pas du tout PIVOT, donc effectivement maintenant je vais pouvoir faire une recherche grâce à ce mot clef.
    Il n'y a pas de critère particulier pour ordonner les colonnes. La première ligne dans la première colonne et ainsi de suite. Effectivement le nombre de colonne serait limité à 4.

    Nicolas

  5. #5
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Pour un export vers un fichier csv le plus simple sera d'utiliser GROUP_CONCAT avec le ; comme séparateur

  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
    La première ligne dans la première colonne et ainsi de suite.
    Il n'y a de première ligne (et de deuxième, etc) qu'à la condition qu'un critère de tri ait été défini
    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
    nma
    nma est déconnecté
    Membre régulier
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2002
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Mai 2002
    Messages : 225
    Points : 108
    Points
    108
    Par défaut
    Le csv c pour la fin, je dois d'abord faire le pivot pour une requete plus globale.

    Auriez vous un exemple de requête pivot de base (le truc le plus simple possible) celle que je trouves sont un peu complexe mais je continue à chercher.

    Nicolas

  8. #8
    nma
    nma est déconnecté
    Membre régulier
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2002
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Mai 2002
    Messages : 225
    Points : 108
    Points
    108
    Par défaut
    Bonsoir,

    Je m'en suis sortie avec le group_concat qui est plutôt simple en fait. Mais rien compris au pivot. Pas réussi à trouver un exemple basique sans somme ni moyenne ni truc de fou, je n'ai même compris comment l'appliquer à mon cas qui est relativement basique.

    Merci de votre aide
    Nicolas

Discussions similaires

  1. xsl-fo : ligne de tableau specifique en fonction d'un test
    Par de LANFRANCHI dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 12/05/2005, 08h24
  2. Ajouter une ligne à un tableau
    Par Oluha dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 16/02/2005, 15h20
  3. Lien sur une ligne de tableau
    Par Oluha dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/02/2005, 11h36
  4. Transformer une ligne en polygone
    Par bl4d3 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 02/09/2003, 09h35
  5. Split et calcul de ligne du tableau
    Par La_picolle dans le forum ASP
    Réponses: 6
    Dernier message: 27/08/2003, 15h58

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