Bonjour à tous,

J'ai une base oracle 10 avec ces 3 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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
xbasecomp
+---------+------------+
|itmref_0 | supdat_0   |
+---------+------------+
| ref1    | 2023-08-02 |
| ref2    |            |
| ref3    | 2023-10-10 |
+---------+------------+
 
itmmaster
+---------+------------+
|itmref_0 | itmsta_0   |
+---------+------------+
| ref1    | 1          |
| ref2    | 2          |
| ref3    | 6          |
+---------+------------+
 
stojou
+---------+--------------+------------+
|itmref_0 | loc_0        | iptdat_0   |
+---------+--------------+------------+
| ref1    | emp1         | 2023-01-10 |
| ref1    | emp2         | 2022-05-15 |
| ref3    | emp10        | 2021-10-26 |
| ref3    | emp8         | 2022-04-22 |
| ref3    | emp25        | 2023-10-01 |
| ref2    | emp1         | 2023-10-31 |
| ref2    | emp3         | 2023-08-18 |
+---------+--------------+------------+
Je veux obtenir dernier emplacement (stojou.loc_0) occupé pour une référence article (itmmaster.itmref_0) ayant le status (itmmaster.itmsta_0 = 6) après le 1 octobre (xbasecomp.supdat_0)

Avec le jeu de données je devrais obtenir

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
+----------+-------+------------+
| itmref_0 | loc_0 | supdat_0   |
+----------+-------+------------+
| ref3     | emp25 | 2023-10-10 |
+----------+-------+------------+
J'ai essayé deux méthodes avec les requêtes imbriqués mais sans grand succès (et j'ai plus la requête sous la main). Ensuite j'ai essayé avec les INNER JOIN mais il me renvoie n'importe quoi comme résultat

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
SELECT x.ITMREF_0, s.LOC_0
FROM XBASECOMP x 
INNER JOIN ITMMASTER i ON i.ITMREF_0 = x.ITMREF_0 
INNER JOIN STOJOU s ON s.ITMREF_0 = x.ITMREF_0 
INNER JOIN (
	SELECT s2.ITMREF_0, MAX(s2.IPTDAT_0) "MaxSup" 
	FROM STOJOU s2
	GROUP BY s2.ITMREF_0
) maxd ON x.ITMREF_0 = maxd.ITMREF_0
WHERE
	x.SUPDAT_0 > TO_DATE('2023-10-01', 'yyyy-mm-dd') AND
	i.ITMSTA_0 = 6
Je sèche complètement, auriez-vous une idée pour m'aider ?

Merci d'avance.