Bonjour à toutes et tous,

Voici les scripts de creation des tables :

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
CREATE TABLE dem_comment (
COMMENTID VARCHAR2(50 BYTE) NOT NULL,
PARENTID VARCHAR2(50 BYTE) NOT NULL,
DEM_DATE_CREATION_MEMO date)
 
 
CREATE TABLE demand(
NUM_PCE VARCHAR2(14 BYTE) NOT NULL, 
NUM_DEMANDE VARCHAR2(8 BYTE)
)
 
 
insert into dem_comment VALUES (1,'12345ABCDEF',to_date('17/08/2012 10:18:34','DD/mm/YYyy HH:MI:SS'))
 
insert into demand values('12345','ABCDEF')
Et la requete qui me pose problème est la suivante

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
select dem.NUM_PCE, memo.parentid
from demand dem, dem_comment memo
where CONCAT(dem.NUM_PCE,dem.NUM_DEMANDE) = memo.parentId (+)
and memo.DEM_DATE_CREATION_MEMO = (select MAX(DEM_DATE_CREATION_MEMO)
FROM dem_comment memo
WHERE memo.parentId = CONCAT(dem.NUM_PCE,dem.NUM_DEMANDE))
Le résultat de l'execution de cette requete est celui que j'attend

NUMPCE | PARENTID

12345 | 12345ABCDEF

Mais lorsque je supprime l'enregistrement de la table dem_comment, je suis supposé avoir le résultat suivant (à cause de la jointure externe)

NUMPCE | PARENTID

12345 |
Mais le résultat est qu'il n'y pas d'enregistrement

NUMPCE | PARENTID


C'est comme si la jointure externe ne jouait pas son rôle

merci pour votre aide