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

SQL Oracle Discussion :

Pivoter la moitié d'une table


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 32
    Points : 23
    Points
    23
    Par défaut Pivoter la moitié d'une table
    Bonjour,

    J'ai une table source dont la structure et les données se présentent comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Col1   Col2    Col3    COLI_001    COLI_002      
    100    901    ABC      01            06
    200    902    DEF      02            07
    300    903    GHI      03            08
    Je souhaite partir de cette table source pour insérer les données dans la table cible dont les données se présentent ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Col1   Col2    Col3     COLI_CODE   COLI_VALEUR
    100    901    ABC      001             01
    100    901    ABC      002             06
    200    902    DEF      001             02
    200    902    DEF      002             07
    300    903    GHI      001             03
    300    903    GHI      002             08
    Autrement dit, j'ai une partie de la table source en pivot.

  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 786
    Points
    30 786
    Par défaut
    Ceci devrait être suffisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    INSERT INTO cible
        (   col1
        ,   col2
        ,   col3
        ,   coli_code   
        ,   coli_valeur
        )
    SELECT  col1
        ,   col2
        ,   col3
        ,   '001'
        ,   coli_001
    FROM    source
    UNION
    SELECT  col1
        ,   col2
        ,   col3
        ,   '002'
        ,   coli_002
    FROM    source
    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
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    Merci al1_24.
    J'ai oublié de préciser que peuvent s'appeler autrement car la structure de la table source est générée dynamiquement par un traitement en amont. Donc, pour connaitre à tout instant la structure de ma table source, je dois taper dans le dictionnaire de données. Donc, les deux colonnes COLI_001 et COLI_002 peuvent s'appeler COLI_100 et COLI_200 lors du prochain chargement.
    Dans cette même table source, il y a bien une partie fixe, il s'agit de

  4. #4
    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 786
    Points
    30 786
    Par défaut
    Si tes structures de tables ne sont pas fixes, il est alors nécessaire que les requêtes soient créées dynamiquement par un programme.
    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.

Discussions similaires

  1. Pivoter une table
    Par krolineeeeeeee dans le forum Oracle
    Réponses: 15
    Dernier message: 15/01/2010, 16h05
  2. Pivoter une table autour d'une ou plusieurs colonnes
    Par freestyler dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 22/07/2008, 17h27
  3. Réponses: 3
    Dernier message: 09/06/2008, 18h59
  4. Pivoter une table en dynamique
    Par fatsora dans le forum Oracle
    Réponses: 1
    Dernier message: 03/04/2008, 12h18

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