Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Usando um conjunto de resultados de um Sub SELECT quando linhas duplicadas são encontradas


Acho que você quer algo assim:
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

Isso retornará os detalhes do menor número de parada para cada ID de despacho. Você pode filtrar ainda mais simplesmente usando WHERE . Por exemplo.
WHERE  Arrived = 1
AND    Departed = 0

Acho que adicionar o acima à instrução select no topo trará de volta os resultados:
Dispatch_ID    NextStop    Arrived    Departed
===========    ========    =======    ========
6410           1           True       False
50589          1           True       False
50687          1           True       False

Embora eu possa ter entendido completamente mal a pergunta.