bonjour,
j'ai un probleme avec un requete SQL car je n'arrive pas a faire simplement ce que je veux faire.
J'ai 3 tables : Vacancies, VacancyStatus et State.
Une vacancies peut avoir un certain nombre de VacancyStatus.
Les vacancystatus sont des historiques de State.

J'aimerais pouvoir récupérer l'ensemble des vacancies avec le nom et la date de leur dernier en date VacancyStatus (et seulement le dernier en date) dans une seule ligne.
Je n'y arrive malheureusement qu'en utilisant 2 fois la meme sous-requete.
Y a t il un moyen de faire la meme chose avec une jointure?
Ou bien y a t il moyen de stocker le resultat d'une sous-requete pour ne pas l'executer 2 fois ?

voici mon code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
SELECT     Vacancy.VID, Vacancy.PostNumber, Vacancy.PostTitle, Vacancy.PostLevel, Vacancy.PostGrade, vwUnitA.OFFNAMES AS UnitName,
                          (SELECT     TOP 1 State.Name
FROM         VacancyStatus INNER JOIN
                      State ON VacancyStatus.StateID = State.StateID
WHERE     (VacancyStatus.VID = Vacancy.VID) ORDER BY VacancyStatus.StateCreationDate DESC) AS StateName
,
(SELECT     TOP 1 VacancyStatus.StateCreationDate
FROM         VacancyStatus 
WHERE     (VacancyStatus.VID = Vacancy.VID)
ORDER BY VacancyStatus.StateCreationDate DESC) AS StateCreationDate
 
FROM         Vacancy LEFT OUTER JOIN
 vwUnitA ON Vacancy.Unit = vwUnitA.UNIT_CODE
un grand merci pour votre aide par avance
kumkum