1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
-- Résultat final : je récupère tous les éléments de code qui n'a pas
-- de date future, mais uniquement pour la date la plus proche de la date du jour
SELECT RC.Code, RC.Numero, RC.Serie, RC2.DT [MAXPROCHAINCONTROLE]
FROM RetardControle RC
INNER JOIN
(
-- Pour les codes filtrés, je récupère la date la plus proche du jour
SELECT Code, MAX(PROCHAINCONTROLE) AS DT
FROM RetardControle
WHERE CODE NOT IN
--ici je jette les codes qui ont
-- 1- soit uniquement un prochainControle "dans le future"
-- 2- soit des prochain controle "dans le passé" et "au moins un dans le futur"
(SELECT DISTINCT CODE FROM RETARDCONTROLE WHERE ProchainControle >=GETDATE())
GROUP BY CODE
) RC2
ON RC.CODE = RC2.CODE
AND RC.ProchainControle = RC2.DT
ORDER BY RC2.DT |