Comparer les dates de 2 lignes d'une même table
Bonjour,
j'ai une table TABLE avec les champs id1, id2, date, etat
id1 est la clé
Pour un même id2, j'ai plusieurs états possibles et à chaque état correspond une date
Exemple :
id1 id2 date etat
1 10 08/10/2001 A
2 10 08/10/2000 B
3 20 08/10/2008 B
Pour chaque id2, je dois récupérer id1 pour les 2 états A et B uniquement dans le cas où date (A) > date (B)
Voici ma requête, le soucis, c'est qu'elle ne me renvoi aucun résultat :
Code:
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
|
SELECT t1.id1
FROM TABLE t, (
SELECT max( t.date ) AS date1, t.id1
FROM TABLE t
WHERE t.etat = 'A') t1,
( SELECT max( t.date ) AS date2, t.id1
FROM TABLE t
WHERE t.etat = 'B') t2,
( SELECT em.aff_id, t.id1
FROM TABLE t
WHERE em.etat = 'A') t3,
( SELECT t.id2, t.id1
FROM TABLE t
WHERE t.etat = 'B') t4
WHERE t1.id1 = t1.id1
AND t1.id1 = t2.id1
AND t1.id1 = t3.id1
AND t1.id1 = t4.id1
AND t3.id2 = t4.id2
AND t1.date1 > t2.date2 |
Je ne suis pas très calée en sql et encore moins en Oracle donc si vous aviez des idées, cela m'interesserait beaucoup.
Peut être faudrait il écrire une procédure en PL/SQL, malheureusement, je n'y connais rien.
Merci d'avance