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 lignes en colonne


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 175
    Points : 59
    Points
    59
    Par défaut transformation lignes en colonne
    Bonjour,

    Je souhaite tranformer des infos en ligne en des infos en colonne à partir d'une table Oracle. Par exemple, la table suivante :

    col1 col2
    1 1
    1 2
    1 3
    1 4
    2 1
    2 2
    2 3
    2 4

    transformer en table suivante :

    col1 col2 col3 col4 col5
    1 1 2 3 4
    2 1 2 3 4

    Important : à chaque identifiant de la colonne 1 correspond le même nombre de colonnes renseignés par une valeur( ici par exemple, 2 lignes identifiées par 1 et 2 ayant chacune 5 colonnes remplies )

    Merci d'avance
    1

  2. #2
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Points : 1 281
    Points
    1 281
    Par défaut
    chez oracle y'a pas une instruction PIVOT qui permets de faire ca ??

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 882
    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 882
    Points : 53 063
    Points
    53 063
    Billets dans le blog
    6
    Par défaut
    Lisez l'article que j'ai écrit à ce sujet :
    http://sqlpro.developpez.com/cours/sqlaz/erreurs/#L9

    A +

  4. #4
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 175
    Points : 59
    Points
    59
    Par défaut
    le lien ne fonctionne pas dirait-on ?

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 882
    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 882
    Points : 53 063
    Points
    53 063
    Billets dans le blog
    6
    Par défaut
    Si !

    a 14h46

    A +

  6. #6
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Points : 958
    Points
    958
    Par défaut
    Citation Envoyé par SQLpro
    Lisez l'article que j'ai écrit à ce sujet :
    http://sqlpro.developpez.com/cours/sqlaz/erreurs/#L9

    A +
    Un petit bémol à cet article : la fonction pivot ne sert pas qu'à faire de la présentation, car elle transforme en colonnes les lignes de manière dynamique et permet d'initialiser des valeurs non définies.
    Imaginons un exemple du type (chez un glacier qui voudrait savoir combien préparer des glaces en fonction de la météo et du mois, on ne sait jamais)
    METEO|CLIENT|MOIS|CHIFFRE D'AFFAIRES
    Pour la présentation, le champ METEO va passer en colonnes, mais on ne sait pas forcément à l'avance (ie avant de créer toutes les requêtes) quelles valeurs il pourra prendre.

    Si ensuite on doit créer un graphique (une courbe de CA par client en fonction du mois) de tout celà, il sera beaucoup plus simple de faire
    1/ un filtre sur les mois (select * from table where mois='janvier')
    2/ une requete pivot.
    Ca permet de sortir beaucoup moins de lignes pour le graphique, et en plus ça permet de fixer des valeurs données pour les points manquants (0 de CA par exemple, pour la conjonction "chaud et sec" et "février") .
    Quand la base fait 3 millions de lignes, ca divise le temps de calcul par beaucoup comparativement à une fonction de mise en forme.
    Ayant du faire la meme chose sous Access et MySQL, j'ai trouvé Access plus performant pour ce point précis.
    Mais il est vrai que Access n'est pas seulement un SGBD.

Discussions similaires

  1. requete transformation Lignes en colonnes
    Par Meher001 dans le forum Développement
    Réponses: 12
    Dernier message: 27/02/2013, 10h39
  2. Transformer lignes en Colonnes
    Par AliSalafi dans le forum Bases de données
    Réponses: 1
    Dernier message: 28/01/2013, 12h32
  3. [MySQL] transformer ligne en colonne dans tableau après regroupement
    Par yadou dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/07/2007, 15h27
  4. Transformer ligne en colonne
    Par delphine_lep dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/10/2006, 14h15
  5. Requête : Transformer lignes en colonnes
    Par bleu_ciel dans le forum Access
    Réponses: 6
    Dernier message: 27/05/2006, 21h26

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