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 :

[10g] SQL fonction analytique


Sujet :

SQL Oracle

  1. #1
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 469
    Points : 167
    Points
    167
    Par défaut [10g] SQL fonction analytique
    Bonjour à tous,

    j'ai une table de départ avec les champs suivants

    CHAMP1 CHAMP2
    -------- -------
    1 11
    1 12
    1 13
    1 14
    2 21
    2 22
    2 23
    .....

    Je veux récupérer les deux premiers champs en les groupant par champ1
    donc
    CHAMP1 CHAMP2
    -------- -------
    1 11
    1 12
    2 21
    2 22
    .....

    j'ai réussi en réalisant la requete suivante


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    with GetTraitement
    as
    (
    select chp1, chp2, row_number() over (partition by chp1 order by chp2 ) ordre
    from matable
    )
    SELECT  chp1, ORDRE, chp2
    FROM GetTraitement
    (chp2 est un VARCHAR2)

    mais je voudrais maintenant avoir le résultat en colonne groupé sur le chmp1


    chp1 chpDerowNumber1 chpDerowNumber2
    -------- ------------------ --------------
    1 11 12
    2 21 22
    ...

    on m'a parlé de PIVOT mais je n'ai pas réussi
    j'ai essayé avec des case mais pas mieux

    si vous avez une solution merci beaucoup ....

  2. #2
    Membre expérimenté Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Points : 1 332
    Points
    1 332
    Par défaut
    Bonjour ,

    l'operation qui consiste a faire du PIVOT existe dans toutes le versions mais l'instruction PIVOT elle-meme n'existe qu'en 11G.

    tu peux regarder ici

    http://download.oracle.com/docs/cd/B...htm#sthref1181

    Sinon une reponse possible

    Code sql : 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
    21
    22
    23
    24
    25
    26
     
    > with t
      2  as (select 1 id ,11 value from dual union
      3  select 1 ,12 from dual union
      4  select 1, 13 from dual union
      5  select 1 ,14 from dual union
      6  select 2 ,21 from dual union
      7  select 2 ,22 from dual union
      8  select 2 ,23 from dual union
      9  select 3, 14 from dual union
     10  select 3, 10 from dual union
     11  select 3, 18 from dual)
     12   SELECT  id,
     13           MAX(DECODE ( rn , 1, value )) t1,
     14           MAX(DECODE ( rn , 2,value )) T2
     15      FROM
     16     (SELECT  id,value,
     17              row_number() OVER ( partition by id  order by rownum) rn
     18     FROM  t)
     19    GROUP BY id;
     
            ID         T1         T2
    ---------- ---------- ----------
             1         11         12
             2         21         22
             3         10         14

  3. #3
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 469
    Points : 167
    Points
    167
    Par défaut
    ça fonctionne nickel

    merci

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

Discussions similaires

  1. [SQL / PL/SQL] fonction analytique last_value
    Par Nounoursonne dans le forum SQL
    Réponses: 7
    Dernier message: 23/08/2007, 21h18
  2. [SQL / PL/SQL] fonction analytique last_value
    Par Nounoursonne dans le forum Oracle
    Réponses: 7
    Dernier message: 23/08/2007, 21h18
  3. [SQL] [Oracle 9.2] fonctions analytiques grosses tables
    Par Hugues_78 dans le forum Oracle
    Réponses: 11
    Dernier message: 10/10/2006, 18h27
  4. SQL standard vers les fonctions analytiques
    Par Emmanuel Lecoester dans le forum Oracle
    Réponses: 7
    Dernier message: 02/10/2006, 19h27
  5. Réponses: 4
    Dernier message: 18/08/2005, 16h11

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