Bonjour,
Je travaille sous Microsoft SQL 2008.
Mon développement tourne autour de la création de projet. Chacun de ces projets possède une date de démarrage et une date de fin. Ces dates peuvent être modifiées et la modification de ces dates est historisée.
Ma base comporte 3 tables:
- Projet: IDProjet, NomProjet
- DatesProjet: IDDate, ValeurDate, CreationDate
- HistoProjetDate: IDHisto, IDProjet, IDDate, NomDate
Avec les jointures entre ces 3 tables.
Quand je fais cette requête :
Le résultat retourné est de type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Select DateDebut.ValeurDate as DateDebut, DateFin.ValeurDate as DateFin From (SELECT TOP(1)DatesProjet.ValeurDate, HistoDateProjet.IDProjet FROM DatesProjet INNER JOIN HistoDateProjet ON DatesProjet.IDDate = HistoDateProjet.IDDateProjet WHERE HistoDateProjet.NomDate='DateDebut' order by CreationDate desc) as DateDebut, (SELECT TOP(1)DatesProjet.ValeurDate, HistoDateProjet.IDProjet FROM DatesProjet INNER JOIN HistoDateProjet ON DatesProjet.IDDate = HistoDateProjet.IDDateProjet WHERE HistoDateProjet.NomDate='DateFin' order by CreationDate desc) as DateFin, Projet Where Projet.IDprojet=DateDebut.IDProjet and Projet.IDProjet=DateDebut.IDProjet
datedebut datefin
31/08/2011 02/09/2011
En revanche quand le projet n'a pas encore de date de fin le résultat ne m'est pas retourné.
Je souhaiterais que dans ce cas le résultat retourné soit du type :
datedebut datefin
31/08/2011 NULL
J'ai fait quelques recherches sur internet sans succès.
Comment puis je réaliser cela?
D'avance merci.
Partager