Bonjour,
J'ai requête à faire selon un algo...
En fait, je dois ajouter une colonne "test" dans ma table selon les resultats de la requete.
J'ai une table qui historise les données de cette façon:
cf pièce jointe : test.jpg
Mon objectif est de créer une colonne "test" qui marque :
- "1" si pour le MAX(update_ID), j'ai TYPE_O = "A"
- "2" si pour le MAX(update_ID), j'ai TYPE_O = "B"
Sinon il faut regarder les lignes au-dessus (l'historique de l'ID) jusqu'a ce que l'on obtienne:
- Type_O = "A" donc "test"=3
- Type_O = "B" donc "test"=4
Je ne sais pas si je suis claire...
J'obtiens correctement test = 1 ou 2 avec cette requete:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select distinct ID, MAX(UPDATE_ID), TYPE_O, DATE_O, decode(TYPE_O,'A',1, 'C',2) test from historique group by ID, TYPE_O, DATE_O, decode(TYPE_O,'A',1, 'B',2)
mais je ne sais pas trop comment faire lire l'historique pour les 2 autres cas...
voici ce que je veux obtenir: cf piece jointe: test_resultat.jpg
qqn peut me donner des pistes?
Je ne sais pas si avec les fonctions analytiques, ca peut faire avancer des choses?
Merci d'avance!
Ps: j'ai oublié d'indiquer que je suis en Oracle 9i
Partager