Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Utilisation d'un ensemble de résultats à partir d'un sous-sélection lorsque des lignes en double sont rencontrées

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.