Bonjour,

J'essaye depuis plusieurs jours d'écrire LA requête PL/SQL qui va bien pour répondre à la problématique suivante.
Dans une table où je stocke 1 préférence et 1 intervalle, je souhaite les connaître les dates où je change de préférence sachant que je dois toujours récupérer la préférence minimale :

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
 
INSERT INTO t (preference, start_date, end_date)
  VALUES   (996,
            TO_DATE ('12/01/2008 00:00:00', 'MM/DD/YYYY HH24:MI:SS'),
            TO_DATE ('10/12/2009 23:59:59', 'MM/DD/YYYY HH24:MI:SS'));
 
INSERT INTO t (preference, start_date, end_date)
  VALUES   (990,
            TO_DATE ('09/01/2009 00:00:00', 'MM/DD/YYYY HH24:MI:SS'),
            TO_DATE ('07/31/2010 23:59:59', 'MM/DD/YYYY HH24:MI:SS'));
 
INSERT INTO t (preference, start_date, end_date)
  VALUES   (984,
            TO_DATE ('05/08/2010 00:00:00', 'MM/DD/YYYY HH24:MI:SS'),
            TO_DATE ('05/12/2010 23:59:59', 'MM/DD/YYYY HH24:MI:SS'));
 
INSERT INTO t (preference, start_date, end_date)
  VALUES   (983,
            TO_DATE ('05/30/2010 00:00:00', 'MM/DD/YYYY HH24:MI:SS'),
            TO_DATE ('06/15/2010 23:59:59', 'MM/DD/YYYY HH24:MI:SS'));
Je cherche donc à obtenir :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
01/09/2009 -- on passe de 996 à 990
08/05/2010 -- on passe de 990 à 984
12/05/2010 -- on passe de 984 à 990 (à nouveau)
30/05/2010 -- on passe de 990 à 983
15/06/2010 -- on passe de 983 à 990 (à nouveau)
J'essaye de m'inspirer de plusieurs articles dont ceux de AskTom mais je n'arrive pas à comprendre la logique des requêtes récursives/analytiques :
http://asktom.oracle.com/pls/asktom/...76000346581356

Pourriez-vous m'aider à écrire ou m'expliquer comment Tom en est arrivé à écrire la requête au début de cet article (j'arrive à comprendre celle d'Anthony un peu plus loin dans ce même article ceci dit) ?

Merci.

C.

PS : je vais être absent la semaine prochaine mais n'hésitez pas à me poser des questions ou faire des propositions et j'y répondrai dès mon retour.