Je pense que vous voulez quelque chose comme ça :
SELECT dl.DispatchID,
dl.StopNumber AS NextStop,
dl.Arrived,
dl.Departed
FROM DispatchLocations dl
INNER JOIN
( SELECT DispatchID, MIN(StopNumber) [StopNumber]
FROM DispatchLocations
GROUP BY DispatchID
) MinDL
ON MinDL.DispatchID = dl.DispatchID
AND MinDL.StopNumber = dl.StopNumber
Cela renverra les détails du numéro d'arrêt le plus bas pour chaque ID de répartition. Vous pouvez ensuite filtrer cela davantage en utilisant simplement WHERE
. Par exemple
WHERE Arrived = 1
AND Departed = 0
Je pense que l'ajout de ce qui précède à l'instruction select en haut ramènera les résultats :
Dispatch_ID NextStop Arrived Departed
=========== ======== ======= ========
6410 1 True False
50589 1 True False
50687 1 True False
Même si j'ai peut-être complètement mal compris la question.