Bonjour,

J'ai une table décrite comme suit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
CREATE TABLE message (
  type VARCHAR2(50),
  time DATE,
  grp VARCHAR2(10)
)
Je sais que les messages du type "abc" ont une valeur pour time inférieure aux messages du type "bcd" au sein d'un même groupe.

Je voudrais extraire de la table les groupes dont le message "bcd" a un time supérieur à "abc" de 15 minutes.

Comment faire ?

Pour l'instant, je suis parti sur cette idée mais je ne sais pas comment la terminer :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
SELECT
  m1.grp AS grp
FROM
  message m1,
  message m2
WHERE
      m1.grp = m2.grp
  AND m1.name = 'abc'
  AND m2.name = 'bcd'
  AND numtodsinterval(m2.time - m1.time, 'day') > [15 minutes]
Je ne sais pas par quoi remplacer le [15 minutes] : par un string, un intervalle et surtout, quelle valeur ?

D'avance merci à qui m'aidera.

P.S. J'ai pas trouvé mieux que la double jointure sur la même table. S'il y a mieux, je prends bien sûr !