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:
un grand merci pour votre aide par avance
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
kumkum
Partager