|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : mai 2007 Messages : 49 ![]() |
Bonjour
Je bloqué dans la mise à jour de mon univers. Je vous expose les faits J'ai une table RDV avec les champs ID_Client, Date de RDV et Statut RDV J'ai une autre table Client avec ID_Client Je souhaite récupérer dans une requête l'ID_Client et la Date de RDV si Actif (Statut RDV = 'A') Ma jointure entre les 2 tables est : Table RDV.ID_Client(+) = Table Client.ID_Client AND Table RDV.Statut RDV = 'A' Normalement le résultat de cette jointure ne me donne que les rdv actif J'ai ensuite créé un objet de type nvl(Table RDV.Date RDV, null) qui sera utilisé dans ma requête final Je voudrais que cette objet me ramène la date de rdv si elle existe et vide sinon Mais ça ne marche pas. Que dois-je faire? Merci |
|
|
00
|
|
|
#2 |
![]() ![]() Julien LizzulInscription : mars 2008 Messages : 1 103 ![]() |
Bonjour,
Il faut mettre la jointure externe sur le 'A' également, ce qui donne : Code :
TABLE RDV.ID_Client(+) = TABLE Client.ID_Client AND TABLE RDV.Statut RDV(+) = 'A' (N'oublie pas les balises CODE )Bon courage ![]() EDIT : Je reviens dessus car je ne suis pas sur d'avoir répondu à la question... Si ton statut est à 'A', y'a t-il forcément une date de rdv renseigné ? Je ne comprends pas pourquoi tu appliques un NVL pour attribuer NULL... Un NVL est l'équivalent de : Si mon objet n'est pas NULL alors je mets mon objet, sinon, je lui attribue une valeur par défaut.
__________________
|
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : mai 2007 Messages : 49 ![]() |
EDIT : Je reviens dessus car je ne suis pas sur d'avoir répondu à la question...
Si ton statut est à 'A', y'a t-il forcément une date de rdv renseigné ? Je ne comprends pas pourquoi tu appliques un NVL pour attribuer NULL... Un NVL est l'équivalent de : Si mon objet n'est pas NULL alors je mets mon objet, sinon, je lui attribue une valeur par défaut. __________________ Voici ce que j'ai en BDD : Table client Client 1 Client 2 Client 3 Table RDV Client Date de rdv Statut Client 1 01/01/1753 C Client 1 01/02/2011 A Client 3 01/02/2011 C Je souhaite sortir la liste de tous les clients avec la date de rdv au statut A si elle existe soit le résultat suivant. Sinon un champ vide Client 1 01/02/2011 Client 2 NULL Client 3 NULL En appliquant ta solution, je ne récupère toujours pas le Client 3 |
|
|
00
|
|
|
#4 | ||
![]() ![]() Julien LizzulInscription : mars 2008 Messages : 1 103 ![]() |
Ok, on va s'en sortir alors
Il faut faire une jointure simple entre tes 2 tables sans la condition statut='A'. On garde la jointure externe pour récupérer tous les clients : Ensuite, tu crées un objet qui va te ramener la date si le statut est à A, NULL sinon : J'explique un peu ce que fait le decode : Code :
Decode(TEST,val1,resultat1,val2,resultat2,...,valn,resultatn, restultat par défaut) Code :
__________________
|
||
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Inscription : mai 2007 Messages : 49 ![]() |
Merci pour ta réponse mais elle ne fonctionne pas totalement.
Elle ne me ramenait pas les clients avec rdv annulé. Du coup, j'ai trouvé la solution. Jointure externe sur la table client table_client.id_client = table_rdv.id_client(+) and table_rdv.statut='A' Ensuite, dans mon objet un simple nvl() Vous m'avez mis sur la piste donc je vous en remercie |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com