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 :

Mettre des colonnes en ligne


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2010
    Messages : 12
    Points : 8
    Points
    8
    Par défaut Mettre des colonnes en ligne
    Bonjour

    j'ai un problème avec la mise de certaines données sur une ligne. Je vis vous donner un exemple afin de faciliter l'explication.

    J'ai une table contenant les réponses d'entreprises à une question, mais chacune des réponses correspond à une clé unique. Lors que je fais une requete pour sortir les réponses des entreprises, il me les sort de cette facon

    ex:

    nb_cie````Nom_cie```````no_question````Réponse_question

    ````1``````Aliment Zed`````````1````````````Oui
    `````1``````Aliment Zed`````````2````````````500
    ```` 1``````Aliment Zed`````````3````````````QC
    ```` 2``````Cinéma ART````````1````````````non
    ```` 2``````Cinéma ART````````2````````````200
    ```` 2``````Cinéma ART````````3````````````QC
    J'aimerais obtenir les résultats de la requete sous cette forme


    ``nb_cie``````Nom_cie``````Rép_ques1``Rép_ques2````Rép_ques3
    [/B]
    `````` 1``````Aliment Zed````````Oui````````500````````QC
    `````` 2``````Cinéma ART```````Non```````200`````````QC










    Merci

  2. #2
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Points : 313
    Points
    313
    Par défaut
    Bonjour,

    Quelle requête lancez-vous pour obtenir votre résultat de base ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2010
    Messages : 33
    Points : 39
    Points
    39
    Par défaut
    Bonjour,

    Dans le sens ou il s'agit de plusieurs enregistrement différent, je ne pense pas qu'il soit possible de les concaténer...
    Il faudrait plutôt faire une requete du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql = "SELECT * FROM table ORDER BY nb_cie";
    Et ensuite effectuer ton traitement tant que nb_cie reste le même...

    Une autre facon de s'en sortir avec un JOIN:

    Tu crées
    • une table compagnie(nb_cie, nom_cie)
    • une table reponses(nb_cie, reponse1, reponse2, reponse3)

    Cependant, celà peut vite devenir lourd si tu as 25 questions, mais comme ca il est possible d'obtenir ce que tu veux...


    Une remarque cependant sur ton schéma, il faudrait plutot une table qui retient le nom de la société avec son numéro et dans la deuxieme table, retenir les réponses aux questions: si un jour, la société décide de changer de nom, tu vas devoir mettre tous les champs ou son nom apparait a jour, tandis qu'avec le schéma que je te propose, tu n'en mettras qu'un...

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    Sujet récurent sur ce forum.
    Faites une recherche sur le mot clef PIVOT.

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    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 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Sujet effectivement récurrent.
    C'est de la cosmétique !

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    Certes Cinephil, mais je pense surtout qu'il faudrait arrêter avec ce lien car je crois que c'est un des plus mauvais article de SQLPro tant il est rempli d'erreurs (tant techniques que logiques).

    Et on n'a pas toujours une application derrière pour retraiter les données, pour moi cette question du pivot c'est une vraie question tout à fait légitime !

Discussions similaires

  1. Réponses: 7
    Dernier message: 16/09/2008, 19h09
  2. tranformer des colonnes en lignes
    Par panpan75 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 01/07/2008, 11h10
  3. Transformer des colonnes en lignes
    Par marman dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/11/2006, 17h43
  4. [SQL] Transposer des colonnes en lignes + LIKE et SOUNDEX
    Par Anne1969 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 23/11/2005, 13h44
  5. transformer des colonnes en lignes
    Par flonardi dans le forum Oracle
    Réponses: 13
    Dernier message: 28/10/2004, 12h43

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