bonjour,
je n'arrive pas à faire une requette.. c'est en PL/SQL sous oracle 9
j'ai une table TAR_DEVIS et une table TAR_GTG_ACTION
la table TAR_DEVIS prends des devis, et la table TAR_GTG_ACTION enregistre
les action faites sur les devis au cours du temps.
voila un select sur les tables :
je voudrai faire une requette qui me donne pour chaque DEVIS_ID l'action en cours, et donc l'action avec la date la plus proche de nous.GTG_ID ACTION DEVIS_ID ACTION_DATE
31103 1 101 10/08/2007 11:04:55
31103 3 101 10/08/2007 16:46:15
31103 2 101 10/08/2007 17:02:16
31103 5 101 10/08/2007 17:02:31
31103 6 101 10/08/2007 17:02:39
31103 7 101 10/08/2007 17:19:32
31103 2 101 10/08/2007 17:19:39
31103 8 101 10/08/2007 17:19:46
31103 2 101 10/08/2007 17:25:53
31103 3 101 13/08/2007 09:25:05
31103 5 101 13/08/2007 09:25:10
31103 8 101 13/08/2007 09:25:16 ***
31103 1 102 13/08/2007 09:27:27
31103 2 102 13/08/2007 09:27:34
31103 3 102 13/08/2007 09:27:43
31103 5 102 13/08/2007 09:27:49
31103 8 102 13/08/2007 09:27:52 ***
31103 1 103 14/08/2007 10:25:02
31103 2 103 14/08/2007 10:25:48 ***
j'ai réussi a faire une requette pour récuperer l'action en cour en fonction de DEVIS_ID mais je n'arive pas a l'adapter pour avoir un select qui me renvoie seulement les ligne marquer de trois asterix.
voila la requette que j'ai faite pour le moment pour récup l'action en cour :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 begin select max(a.gtg_id) KEEP (dense_rank LAST ORDER BY a.action_date), max(a.action) KEEP (dense_rank LAST ORDER BY a.action_date) into :my_grille, :my_action from tar_gtg_action a, gtg t WHERE a.devis_id = :p_devis_id AND t.gtg_etat IN(1,2,3,4,5); end;
Partager