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 :

Transposer Colonne en ligne


Sujet :

Langage SQL

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 316
    Points : 146
    Points
    146
    Par défaut Transposer Colonne en ligne
    Bonjour,

    Concernant ce sujet, j'ai bien la solution du PIVOT mais là j'ai un peu de mal à voir comment je peux l'adapter.
    Donc, ma table contient des Nomenclatures et une affectation.

    NONEM AFFECT
    -------- ---------
    51747939 AB3016
    51747939 AB3009
    51747940 AB3009
    51747940 AB3016
    51748058 AB035
    51748059 AB035
    51748060 AB059
    51748061 AB059
    51748062 AB059
    51748062 AB061
    51748062 AB081

    Les affections ne sont pas des valeurs fixes, c'est à dire que tous les jours de nouvelle valeur sont crées et il en existe des dizaines.. mais jamais plus de 6 par nomenclature.

    Mon objectif est d'arriver à ceci :

    NONEM AFFECT1 AFFECT2 AFFECT3 AFFECT4 AFFECT5 AFFECT6
    -------- --------- --------- --------- --------- --------- ---------
    51747939 AB3016 AB3009
    51747940 AB3009 AB3016
    51748058 AB035
    51748059 AB035
    51748060 AB059
    51748061 AB059
    51748062 AB059 AB061 AB081
    ...

    Comment puis je m'y prendre ?
    Merci pour votre aide.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 736
    Points : 52 448
    Points
    52 448
    Billets dans le blog
    5
    Par défaut
    Utilisez l'opérateur PIVOT.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 814
    Points
    17 814
    Par défaut
    Citation Envoyé par guilld Voir le message
    Concernant ce sujet, j'ai bien la solution du PIVOT mais là j'ai un peu de mal à voir comment je peux l'adapter.
    Il faut numéroter vos lignes, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select NONEM, AFFECT, row_number() over(partition by NONEM order by ?)
      from MaTable;
    Vous pouvez ensuite utiliser cette numérotation pour le PIVOT.
    Pensez à préciser votre SGBD, il y a des différences syntaxiques.

  4. #4
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 316
    Points : 146
    Points
    146
    Par défaut
    SGBD(SQL 2014 STD)

    Donc me voici avec ce résultat:

    Nom : Capture.JPG
Affichages : 88
Taille : 32,2 Ko

    Effectivement, dans l'échantillon, la première NOMEN a bien 2 AFFECT..
    Maintenant, comment associer mon Row_number avec l'AFFECT, le tout en ligne et non en colonne ?

  5. #5
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 316
    Points : 146
    Points
    146
    Par défaut
    C'est bon les amis..
    merci

    Nom : Capture.JPG
Affichages : 94
Taille : 33,1 Ko

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

Discussions similaires

  1. [10g] Transposer colonne en ligne
    Par jopont dans le forum SQL
    Réponses: 2
    Dernier message: 29/11/2017, 15h18
  2. Transposer colonne en ligne
    Par GuiomCh dans le forum Requêtes
    Réponses: 2
    Dernier message: 09/10/2017, 10h58
  3. Réponses: 8
    Dernier message: 13/04/2017, 14h21
  4. Transposer colonnes en lignes
    Par Frank dans le forum SQL
    Réponses: 4
    Dernier message: 14/10/2011, 18h55
  5. transposer colonnes en lignes
    Par freestyler dans le forum Oracle
    Réponses: 5
    Dernier message: 05/04/2007, 15h32

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