Salut à tous,
Il me faut faire une requête sur une table, du type comme ci-dessous, que corresponde à le temps d'utilisation des nos salles de réunion.
Donné une date, je dois retourner la liste des salles et une collonne additionelle avec 1 si la salle a été utilisé toute la matinée ou l'après-midi, et 2si a été occuppé toute la journée.MaTable
MonChampClé - VarChar2
DT_DEBUT - DATE
DT_FIN - DATE
.
.
.
Je ne trouve pas comment faire avec une simple requête, donc je penche pour utiliser une fonction avec une bucle, en comparant les dates et après ajoutant le valeur correspondant dans une nouvelle colonne, et ainsi jusque parcourir toutes les salles.... mais qqn pourrais me dire comment retourner ça à le style d'un cursor ou une sorte de table ?
Au debut j'avais pensé à récupérer les salles en deux bloques (avant et après 12h:30), mais j'ai un peu de mal à gérer les reunions commencés avant midi mais qui c terminent après.....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 select room_num_cd, to_Char(rsv_dt_begin, 'dd/mm/yyyy') as bgn, sum (to_number(rsv_dt_end - rsv_dt_begin) * 24) as colDiff from room_rsv where rsv_dt_begin >= to_date('01/01/2007', 'dd/mm/yyyy') AND (TO_TIMESTAMP ( to_Char(rsv_dt_begin, 'hh24:mi:ss'), 'hh24:mi:ss') BETWEEN TO_TIMESTAMP ('07:45:00', 'hh24:mi:ss') AND TO_TIMESTAMP ('12:15:00', 'hh24:mi:ss')) group by room_num_cd, to_Char(rsv_dt_begin, 'dd/mm/yyyy')
Tout aide est bien reçue !!! Qqn pourrais me donner une idée de comment faire recuperer ça comme dans une table ou cursor plus ma colonne ?? Ou un autre moyen pour le faire directement dans une Query ?
Merci en avance....
Partager