sous-requetes ou jointure ?
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:
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