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 :

Problème avec un critère de discrimination


Sujet :

SQL Oracle

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2
    Par défaut Problème avec un critère de discrimination
    Bonjour, j'ai une requête où je cherche à savoir l'adresse active des parents d'un usager à une date donnée.

    Il est possible qu'on ait une adresse active pour un parent à cette date donnée, que nous n'ayons aucune adresse pour ce parent ou que la plus ancienne adresse connue d'un parent soit supérieure à cette date. C'est cette dernière possibilité qui me cause problème.

    Je pars d'une vue avec 219 usagers et après la requête suivante je me retrouve à 218 car un des usagers a une mère dont la plus ancienne (et seule) adresse connue a débuté après la date donnée.

    Ma question: comment faire pour ne pas perdre cet usager ?

    Voici une partie de mon code:

    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
    FROM   VUE_PLAC_ACTIF_DATE_DONNEE_02,
              ADRESSE   ADRESSE_MERE,
              ADRESSE   ADRESSE_PERE
     
    WHERE  VUE_PLAC_ACTIF_DATE_DONNEE_02.USAGERIDMERE IS NOT NULL
    AND      VUE_PLAC_ACTIF_DATE_DONNEE_02.USAGERIDMERE  =
               ADRESSE_MERE.PARENTID (+)
    AND    (ADRESSE_MERE.CODETYPEADRESSE  IN (0, 2, 3)
    AND     ADRESSE_MERE.DATEDEBUT            <= '2010-05-19'
    AND    (ADRESSE_MERE.DATEFIN                 IS NULL
    OR       ADRESSE_MERE.DATEFIN                  > '2010-05-19')
     
    OR     NOT EXISTS 
           (SELECT NULL FROM ADRESSE ADRESSE_MERE_2 
            WHERE VUE_PLAC_ACTIF_DATE_DONNEE_02.USAGERIDMERE  = 
            ADRESSE_MERE_2.PARENTID))
    En vous remerciant!

  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,


    Si vous utilisiez la norme SQL de 92 pour faire vos jointures vous n'auriez pas loupé cette jointure externe !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    FROM VUE_PLAC_ACTIF_DATE_DONNEE_02 a
    left outer join ADRESSE ADRESSE_MERE b on a.USAGERIDMERE = b.PARENTID and b.CODETYPEADRESSE IN (0, 2, 3) and b.DATEDEBUT <= '2010-05-19' and b.DATEFIN > '2010-05-19'

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

    Informations forums :
    Inscription : Août 2008
    Messages : 2 952
    Par défaut
    Et il faut utiliser TO_DATE pour éviter les conversions implicites
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND b.DATEDEBUT <= to_date('2010-05-19','YYYY-MM-DD') AND b.DATEFIN > to_date('2010-05-19','YYYY-MM-DD')

  4. #4
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2
    Par défaut
    Merci beaucoup!

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

Discussions similaires

  1. Problème avec un critère d'une requête
    Par ShAk44 dans le forum Access
    Réponses: 10
    Dernier message: 13/06/2007, 16h13
  2. Réponses: 5
    Dernier message: 11/05/2007, 07h44
  3. Réponses: 4
    Dernier message: 27/04/2007, 15h22
  4. [VBA]Problème avec les critères d'une recherche de fichier
    Par lucho013 dans le forum VBA Access
    Réponses: 3
    Dernier message: 16/04/2007, 23h40
  5. problème avec résultat de recherche multi-critères
    Par audrey_desgres dans le forum Access
    Réponses: 2
    Dernier message: 23/06/2005, 11h00

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