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 :

Optimisation de l'union entre deux requetes


Sujet :

Oracle

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2013
    Messages : 106
    Points : 38
    Points
    38
    Par défaut Optimisation de l'union entre deux requetes
    Bonjour,

    J'ai une requete :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    SELECT t1.cellid_start,
           t3.celllac as col1,
           t3.cell as col2,
           t3.nodeb as col3,
           t3.rnc as col4,
           t3.longitude as col5,
           t3.latitude as col7,
           t3.name as col8,
           NULL as col9,
           NULL as col10,
           NULL as col11,
           NULL as col12,
           NULL as col13,
           NULL as col14,
           NULL as col15
      FROM kpi.connexion_dwhs t1, kpi.cell3g t3
     WHERE    t1.name2 = 21652951596 AND T1.CELLID_START = T3.CELLID
    UNION 
    SELECT t1.cellid_start,
           NULL as col1,
           NULL as col2,
           NULL as col3,
           NULL as col4,
           NULL as col5,
           NULL as col7,
           NULL as col8,
           t2.celllac as col9,
           t2.cell as col10,
           t2.bsc as col11,
           t2.msc as col12,
           t2.longitude as col13,
           t2.latitude as col14,
           t2.nom as col15
     
     
      FROM kpi.connexion_dwhs t1, kpi.cell2g t2
     WHERE t1.name2 = 21652951596 AND t1.cellid_start = T2.CELLID
    résultat de cette requete n'est pas assez bien
    Nom : résultat.JPG
Affichages : 152
Taille : 46,4 Ko

    il me fait pour chaque cellId une ligne à part
    je veux que pour chaque cellId fait la correspondance avec la table cell2G et la table cell3G
    ça vaut dire pour le cellId 18372 il le met les deux lignes dans la meme ligne, je suis bloqué là j'ai éssayé mais toujours pas de succès

    pouvez vous m'aider
    Merci d'avance

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    comme ceci ?

    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
    21
    22
     
    SELECT t1.cellid_start,
           t3.celllac AS col1,
           t3.cell AS col2,
           t3.nodeb AS col3,
           t3.rnc AS col4,
           t3.longitude AS col5,
           t3.latitude AS col7,
           t3.name AS col8,
           t2.celllac AS col9,
           t2.cell AS col10,
           t2.bsc AS col11,
           t2.msc AS col12,
           t2.longitude AS col13,
           t2.latitude AS col14,
           t2.nom AS col15
    FROM	kpi.connexion_dwhs t1
    LEFT JOIN kpi.cell3g t3
    	ON T1.CELLID_START = T3.CELLID
    LEFT JOIN kpi.cell2g t2
    	ON t1.cellid_start = T2.CELLID
    WHERE    t1.name2 = 21652951596

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2013
    Messages : 106
    Points : 38
    Points
    38
    Par défaut
    Merci pour ta réponse,
    il m'a affiche cet erreur :
    ORA-00900: instruction SQL non valide à la dérniére ligne

  4. #4
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2013
    Messages : 106
    Points : 38
    Points
    38
    Par défaut
    pas de réponses svp !

  5. #5
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    Ca ne sert à rien de relancer. La majorité des personnes qui répondent sur ce forum sont des gens qui travaillent sur Oracle.. donc les réponses le weekend sont plus rares.

    la réponse de aieeeuuuuu devrait tourner sans erreur (même si la requête est incorrecte vis à vis de la demande).
    Quelle version d'Oracle ?

    La requête d'aieeeuuuuu est incorrecte car elle ramènera toutes les lignes de connexion_dwhs même s'il n'y a aucune ligne dans cell2g et cell3g

    Peut être un truc dans ce style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT t1.cellid_start,
    t3.celllac AS col1, t3.cell AS col2, t3.nodeb AS col3, t3.rnc AS col4,
    t3.longitude AS col5, t3.latitude AS col7, t3.name AS col8,
    t2.celllac AS col9, t2.cell AS col10, t2.bsc AS col11, t2.msc AS col12,
    t2.longitude AS col13, t2.latitude AS col14, t2.nom AS col15
    FROM	kpi.connexion_dwhs t1, kpi.cell3g t3, kpi.cell2g t2
    WHERE t1.name2 = 21652951596
    AND t1.cellid_start = T3.CELLID (+)
    AND t1.cellid_start = T2.CELLID (+)
    AND NVL(t2.cellid, t3.cellid) IS NOT NULL
    Attention, il y a aussi l'UNION de la requête d'origine qui n'a pas été reprise. Un UNION fait un distinct sur les lignes ramenées. A voir si c'est utile ou pas.
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  6. #6
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2013
    Messages : 106
    Points : 38
    Points
    38
    Par défaut
    Un grand merci McM , elle me donne exactement ce que je veux

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

Discussions similaires

  1. Difficulté de creation d'une Union entre 3 requetes
    Par Guillaume 78 dans le forum Requêtes et SQL.
    Réponses: 13
    Dernier message: 04/06/2008, 18h15
  2. Jointure entre deux requetes
    Par Myogtha dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 07/11/2007, 19h50
  3. jointure entre deux requete(sans doublant)
    Par nassu dans le forum Access
    Réponses: 1
    Dernier message: 10/04/2006, 11h26
  4. difference entre deux requetes
    Par rdams dans le forum Requêtes
    Réponses: 3
    Dernier message: 21/12/2005, 09h38
  5. jointure entre deux requete
    Par Youssef dans le forum Langage SQL
    Réponses: 21
    Dernier message: 15/01/2004, 15h13

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