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 :

Sous-requete vide dans le FROM = Vue Vide


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Février 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Février 2006
    Messages : 32
    Par défaut Sous-requete vide dans le FROM = Vue Vide
    Bonjour,

    J'ai fait une vue sous Oracle, qui est composée dans le FROM de plusieurs sous-requêtes.

    Quand j'ai des données partout pas de souci cela fonctionne bien.

    Par contre quand j'ai une (ou des) sous-requête vide, toute ma vue est vide !!

    Comment faire pour que si ma sous-requête est vide, elle renvoie null, et que ma vue affiche tout de même les résultats disponibles + null dans les champs des sous-requêtes concernées ?

    Merci d'avance et bonne journée,

    Creepy

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    bonjour,

    connaissez-vous les jointures externes ?

  3. #3
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 953
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 953
    Par défaut
    Regardez les jointures externes

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    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 134
    Par défaut
    Sans connaitre ta requête cela semble difficile de te répondre...
    Toutefois, je te proposerais bien de voir du côté des jointures externes

    Edit : grilled
    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.

  5. #5
    Membre actif
    Inscrit en
    Février 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Février 2006
    Messages : 32
    Par défaut
    Bonjour à tous,

    Merci pour vos premières réponses. Effectivement je ne suis pas un pro du SQL, mais mon boss ne me laisse pas le choix
    Je ne comprends pas votre remarque sur les jointures, ma vue est de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Select tata.X, tata.Y, toto.Z, titi.G 
    FROM tata,
    (Select Z) as toto,
    (Select G FROM ....) as titi
    Merci d'avance,

    Creepy

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Les jointures avec les virgules sont des produits cartésiens ou des jointures fortes, en fonction de la présence ou non de critères de jointure dans la clause WHERE de votre requête.

    Si vous faites une jointure de ce type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      FROM A
         , B
     WHERE A.Id = B.Id
    Qui est équivalent à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
          FROM A
    INNER JOIN B
            ON A.Id = B.Id
    Si dans la table A vous avez l'Id 1 mais pas dans la table B, la requête ne sortira aucun résultat pour cet Id 1.

    C'est pour cela que vous avez été aiguillé sur des jointures externes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
          FROM A
     LEFT JOIN B
            ON A.Id = B.Id

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/08/2011, 17h19
  2. [AC-2007] Afficher colonne vide dans une requete analyse croisée
    Par julius26 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 19/07/2011, 11h59
  3. Erreur dans un fichier HTML vide dans un projet Tomcat sous Eclipse
    Par The_Miagiste dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 08/02/2011, 15h21
  4. Afficher les lignes vides dans une requete
    Par Mattorre dans le forum Langage SQL
    Réponses: 4
    Dernier message: 26/07/2010, 14h13
  5. Problème éléments vides dans du XML sous VB6
    Par matteli dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 21/11/2007, 16h01

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