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 :

Table Temporaire et union de select


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Par défaut Table Temporaire et union de select
    Bonsoir,

    Je passe par une table temporaire pour exploiter l'association de deux select

    J'ai en quelque sorte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    With pivot_note AS
    ( 
        Select * From Table 1
        Where attribut1 = Valeur
       Union
        Select * From Table 2
        Where attribut2 = Valeur
    )
    Select * From
    From  pivot_note
    Grâce à ma table temporaire je regroupe et met en forme des données issus de deux requêtes qui utilisent la même référence soit Valeur.

    J'aimerai englober le tout dans un select pour faire varier Valeur , sachant que la condidtion de valeur est la même sur mes deux requetes ...

    Quelqu'un a une idée ?
    Merci de votre aide

  2. #2
    Membre émérite Avatar de jkofr
    Homme Profil pro
    Senior Consultant DBA (Trivadis SA)
    Inscrit en
    Octobre 2006
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : Suisse

    Informations professionnelles :
    Activité : Senior Consultant DBA (Trivadis SA)
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 484
    Par défaut
    Hello,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
     SELECT * FROM TABLE1 joint TABLE2 on TABLE1.attibut1 = TABLE2.attribut2
     where TABLE1.attibut1= Valeur
    Cela correspond à ton besoin?
    jko

  3. #3
    Membre Expert Avatar de ojo77
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2010
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 680
    Par défaut
    En l'état actuel de la demande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT * FROM TABLE 1
    WHERE attribut1 = Valeur
    Union
    SELECT * FROM TABLE 2
    WHERE attribut2 = Valeur
    équivaut à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    WITH pivot_note AS
    ( 
        SELECT * FROM TABLE 1
        WHERE attribut1 = Valeur
       Union
        SELECT * FROM TABLE 2
        WHERE attribut2 = Valeur
    )
    SELECT * FROM
    FROM  pivot_note

  4. #4
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Par défaut
    Bonjour,


    J'ai simplifié mon exemple pour essayer de rendre compréhensible ma demande.

    Bien entendu cela mon exemple équivaux à juste l'union des deux select ...
    mais c'est pour illustrer ma demande.

    Je cherche à faire un pivot pour Oracle 10 G , je suis parti de cet exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    WITH SR AS
    (
    SELECT id_pers, mnt
         , row_number() over(partition BY id_pers ORDER BY mnt ASC) AS rn
      FROM test_irf
    )
      SELECT id_pers
           , max(case rn when 1 then mnt end) AS mnt_1
           , max(case rn when 2 then mnt end) AS mnt_2
           , max(case rn when 3 then mnt end) AS mnt_3
        FROM SR
    GROUP BY id_pers
    ORDER BY id_pers ASC;
    Sauf que je suis obligé de faire une union de deux select dans la table temporaire pour avoir une ligne de titre en plus des données ...

    Exemple :
    1 COURS 1 | COURS 2 | COURS 3
    2 TOTO | A | C | B
    ......

    Mes deux select interrogent pas les mêmes tables mais les conditions s'appuient sur les même valeurs à savoir la notion de programme.

    Mon pivot fonctionne .... reste que je veux en faire une vue avec l'ensemble de mes programmes .... et je suis coincé avec mon union ...

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

Discussions similaires

  1. Insert select dans table temporaire
    Par cyrgan dans le forum Adaptive Server Enterprise
    Réponses: 4
    Dernier message: 19/06/2008, 20h32
  2. [Droits] INSERT et SELECT sur une table temporaire
    Par Bisûnûrs dans le forum Administration
    Réponses: 2
    Dernier message: 19/06/2008, 08h01
  3. Réponses: 5
    Dernier message: 15/03/2007, 13h48
  4. Select into table temporaire
    Par the big ben 5 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 30/08/2006, 16h23
  5. Nettoyage de table temporaire
    Par Alain Dionne dans le forum Bases de données
    Réponses: 5
    Dernier message: 28/02/2004, 20h44

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