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

Développement SQL Server Discussion :

Transformer des lignes en colonnes [2008]


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Analyse système
    Inscrit en
    Mars 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2015
    Messages : 28
    Par défaut Transformer des lignes en colonnes
    Bonjour Tout le monde,

    j'ai une table avec deux colonnes comme suit :
    ID Valeur
    1 TA
    1 TB
    1 TC
    2 KA
    2 KB
    2 KC

    L'objectif est de transformer ces lignes en colonnes pour avoir un résultat comme suit :

    ID VALEUR1 VALEUR2 VALEUR3
    1 TA TB TC
    2 KA KB KC


    J'ai essayé avec PIVOT et ça n'a pas marché.
    J'espère que vous pouviez m'aider.

    Merci Par avance!

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 602
    Billets dans le blog
    10
    Par défaut
    Bonjour

    Ce sujet très récurent trouve plusieurs solutions évoquées ici : https://fadace.developpez.com/mssql/pivot/

    De plus "ça n'a pas marché" n'est pas un message d'erreur. Communiquez votre requête, le résultat obtenu et le message d'erreur le cas échéant.

  3. #3
    Membre averti
    Femme Profil pro
    Analyse système
    Inscrit en
    Mars 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2015
    Messages : 28
    Par défaut
    Merci beaucoup pour votre réponse, comme j'ai dit j'ai essayé avec la fonction pivot qui m'a donné que des null
    Le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT ID_AAP, 
    	   max([valeur1]) AS [valeur1], 
    	   max([valeur2]) AS [valeur2]
     
    FROM  matable
    PIVOT (max(valeur) FOR valeur IN ([valeur1], [valeur2])) AS valeurs
    GROUP BY ID_AAP
    Le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ID_AAP	valeur1	valeur2
    184           NULL 	NULL
    212	         NULL	NULL
    216	         NULL	NULL
    217	         NULL	NULL
    218	         NULL	NULL
    219	         NULL	NULL
    221	         NULL	NULL
    Merci encore une fois

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 602
    Billets dans le blog
    10
    Par défaut
    et pourquoi pas simplement STRING_AGG (mais en ce cas il n'y a qu'une seule colonne résultante) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT ID 
         , string_agg(VALEUR, ', ')
    FROM  ma_table
    GROUP BY ID

  5. #5
    Membre averti
    Femme Profil pro
    Analyse système
    Inscrit en
    Mars 2015
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Mars 2015
    Messages : 28
    Par défaut
    message d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    'string_agg' is not a recognized built-in function name
    j'ai la version : Microsoft SQL Server 2014

    mon but c'est d'avoir le résultat sur plusieurs colonnes, 3 colonnes par exemple

  6. #6
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 602
    Billets dans le blog
    10
    Par défaut
    arf, il faut une version 2017 ou supérieure

    Mais un pivot n'est pas utilisable dans votre cas puisqu'il n'y a pas de valeur commune de la colonne VAL pour les différentes valeurs de la colonne ID

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

Discussions similaires

  1. Requête SQL, transformer des lignes en colonne
    Par gadget2 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 01/11/2010, 20h50
  2. [Datastage Server 7.5] Transformer des lignes en colonnes
    Par alpachico dans le forum DataStage
    Réponses: 1
    Dernier message: 10/07/2009, 16h25
  3. Transformer des lignes en colonnes
    Par Gomoz dans le forum Requêtes
    Réponses: 1
    Dernier message: 17/02/2009, 17h55
  4. Transformer des lignes en colonne DataStage
    Par bnet2 dans le forum DataStage
    Réponses: 4
    Dernier message: 09/12/2008, 10h07
  5. Transformer des lignes en colonnes
    Par ofinot dans le forum Requêtes et SQL.
    Réponses: 15
    Dernier message: 30/07/2008, 11h45

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