Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Verwenden einer Ergebnismenge aus einem untergeordneten SELECT, wenn doppelte Zeilen gefunden werden

Ich glaube, Sie wollen so etwas:

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

Dadurch werden die Details für die niedrigste Stoppnummer für jede Dispatch-ID zurückgegeben. Diese können Sie dann weiter filtern, indem Sie einfach WHERE verwenden . Z. B.

WHERE  Arrived = 1
AND    Departed = 0

Ich denke, das Hinzufügen des Obigen zur select-Anweisung oben bringt die Ergebnisse zurück:

Dispatch_ID    NextStop    Arrived    Departed
===========    ========    =======    ========
6410           1           True       False
50589          1           True       False
50687          1           True       False

Obwohl ich die Frage möglicherweise völlig falsch verstanden habe.