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

 Oracle Discussion :

Aide pour une requête SQL


Sujet :

Oracle

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 159
    Par défaut Aide pour une requête SQL
    Bonjour

    Je veux un coup de pouce pour faire union de 2 requette SQL enfaite voila un petit exemple pour bien décrire ce que je veux faire :

    j'ai cette 1er requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Select ID1,ID2 from T1 where ID = 3;
     
    qui donne comme résultat par exemple 
    ID1 --------- ID2
    100 --------  10
    100 --------  30
    150 --------  20
    200 --------  30
    300 --------  30

    la 2eme requette :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Select ID1,ID2 from T2 where ID = 3;
     
    qui donne comme résultat par exemple 
    ID1 --------- ID2
    100 --------  30
    200 --------  40
    150 --------  20
    700 --------  15
    300 --------  30
    donc enfaite jusqu'au là tous marche bien, et pour afficher les résultat des deux requette on peut faire un UNION mais ça m'arrange pas parce que moi ce que je veux exactement c'est afficher le résultat de la 1ere requette et dans la 2eme requete j'affichage juste le résultat qui exsite pas dans le résultat de la 1ere requette. donc j'aurai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ID1 --------- ID2
    100 --------  10
    100 --------  30
    150 --------  20
    200 --------  30
    300 --------  30
    200 --------  40
    700 --------  15
    j'éspere que c'est claire merci d'avance pour votre aide.

  2. #2
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    C'est exactement ce que fait le UNION (contrairement au UNION ALL, qui ne fait pas de DISTINCT).

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 159
    Par défaut
    merci pour ta réponce mais justement c'est pas ça ce que je veux moi UNION il fait le distinct entre les deux résultat des 2 requettes, alors que moi je veux afficher le résultat de la 1ere requette complet et dans le résultat de la 2eme requette j'affiche juste les ligne qui éxiste pas dans le résultat de la 1ere requette.

    merci pour votre aide

  4. #4
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Dans ce cas là, il faut faire un union all et dans la requête sur t2, tu fais une clause not exist sur t1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT ID1,ID2 FROM T1 WHERE ID = 3
    UNION ALL
    SELECT ID1,ID2 FROM T2 WHERE ID = 3 
    WHERE NOT EXISTS (SELECT NULL FROM T1 WHERE T2.ID1 = T1.ID1 AND T2.ID2 = T1.ID2)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 159
    Par défaut
    c'est cool c'est exactement ça ce que je cherché ça marche superr bien merci bcp.
    just une petite remarque y a juste une petite erreur il faut mettre un AND a la place de where.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT ID1,ID2 FROM T1 WHERE ID = 3
    UNION ALL
    SELECT ID1,ID2 FROM T2 WHERE ID = 3 
    AND NOT EXISTS (SELECT NULL FROM T1 WHERE T2.ID1 = T1.ID1 AND T2.ID2 = T1.ID2)
    merci encore une fois pour ton aide

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

Discussions similaires

  1. Besoin d'aide pour une requête SQL
    Par FranckyVegas dans le forum Langage SQL
    Réponses: 7
    Dernier message: 27/05/2008, 20h16
  2. Besion d'aide pour une requête SQL SVP
    Par manucha dans le forum Langage SQL
    Réponses: 8
    Dernier message: 14/12/2007, 16h03
  3. aide pour une requête sql/plpgsql
    Par viny dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 09/11/2007, 11h32
  4. Besoin d'aide pour une requête SQL
    Par Borami dans le forum Langage SQL
    Réponses: 1
    Dernier message: 07/11/2005, 10h33
  5. Besoin d'aide pour une Requête SQL ...
    Par Kokito dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/07/2004, 11h56

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