Bonjour a tous,
Je suis actuellement sur un projet BI, et je bloque sur un problème qui parait simple mais vraiment la je n'y arrive pas...
Je vais essayer de faire simple:
J'ai une table RESERVATION dans laquelle j'ai un identifiant TRANS_ID, un RES_ID, une DATE_OUVERTURE et un STATUT de réservation.
Le TRANS_ID correspond à ma clé primaire il permet de différencier une réservation à 2 instants différents, la date d'ouverture est la date de la version de la reservation.
Exemple :
TRANS_ID | RES_ID | DATE_OUVERTURE | STATUT
1 | 1 | 01/01/2011 | BK
2 | 1 | 02/01/2011 | CL
3 | 1 | 03/01/2011 | CT
4 | 2 | 02/01/2011 | BK
5 | 2 | 04/01/2011 | CL
Mon problème est le suivant, je voudrai que quand des utilisateurs font une requete sous Webi en prenant une plage de date ex : entre 15/12/2010 et 02/01/2011 les réservations résultantes soit automatiquement et seulement :
2 | 1 | 02/01/2011 | CL
4 | 2 | 02/01/2011 | BK
soit la version la plus récente d'une réservation sur la plage de temps donnée.
J'ai tenté de passer par une table dérivé avec la requête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 SELECT T1.RES_ID, T1.DATE_OUVERTURE, T1.TRANS_ID , T1.STATUT FROM RESERVATION T1 INNER JOIN (SELECT T2.RES_ID, MAX(T2.DATE_OUVERTURE) AS DATE_MAX FROM RESERVATION T2 GROUP BY T2.RES_ID) T3 ON (T1.RES_ID=T3.RES_ID) AND (T1.DATE_OUVERTURE=T3.DATE_MAX)
Mais lorsque la plage de temps ne comprend pas la DATE_OUVERTURE maximum, je n'obtiens aucun résultat.
J'ai aussi tenté un @Prompt ou un @Variable mais rien de satisfaisant (peut-être que je m'y suis mal pris)
J'avoue être à court d'idée, c'est pourquoi je demande un peu de votre aide.
Merci d'avance pour ceux qui essaieront.
Je sais que je n'ai pas été actif depuis mon inscription mais je compte corriger ca, désolé...
Partager