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

Langage SQL Discussion :

[oracle]jointure externe + test sur la table en question


Sujet :

Langage SQL

  1. #1
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut [oracle]jointure externe + test sur la table en question
    bonjour,

    Pour simplifier j'ai deux tables

    tabA ,tabB

    tabA pouvant posseder un lien avec tabB par le champ COMMUN.
    Probleme les donnees de la tabB sont historisé et je doit donc les tester les valeurs que je ramène.

    donc forcemment cette requete ne marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select *
    from tabA,tabB
    where tabA.COMMUN=tabB.COMMUN(+)
    and tabB.dat_deb<SYSDATE
    and tabB.dat_fin>SYSDATE
    Est ce que quelqu'un a une idee?

    je precise bien entendu que j'ai enormement simplifiez la requete d'origine qui contient une dizaine de jointure mais seule cette partie me pose probleme.
    merci

  2. #2
    Membre habitué
    Inscrit en
    Mai 2002
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 131
    Points : 150
    Points
    150
    Par défaut
    A première vue, je pense qu'il faudrait rajouter des tests IS NULL sur ces deux champs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select *
    from tabA,tabB
    where tabA.COMMUN=tabB.COMMUN(+)
    and (tabB.dat_deb<SYSDATE or tabB.dat_deb IS NULL)
    and (tabB.dat_fin>SYSDATE or tabB.dat_fin IS NULL)
    (Non testé sous Oracle, je ne l'ai pas sous la main, mais avec PostgreSQL et Sybase ASA, ça fonctionne)

  3. #3
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    merci cela marche tres bien

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

Discussions similaires

  1. jointure externe FULL sur une même table [SQLServer 2005]
    Par belrifou dans le forum Langage SQL
    Réponses: 9
    Dernier message: 10/03/2010, 15h14
  2. [Oracle] Plusieurs select max() sur plusieurs tables
    Par Xavier2701 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 14/06/2006, 17h36
  3. [Oracle 9i] Traitement SQL sur une table
    Par Requin15 dans le forum Langage SQL
    Réponses: 11
    Dernier message: 02/06/2006, 09h56
  4. Oracle : Jointure externe
    Par claralavraie dans le forum Oracle
    Réponses: 15
    Dernier message: 23/05/2006, 15h52
  5. Jointure et regroupement sur 2 tables
    Par rocs dans le forum Langage SQL
    Réponses: 1
    Dernier message: 26/07/2005, 11h04

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