Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Използване на набор от резултати от подизбор, когато се срещнат дублиращи се редове

Мисля, че искате нещо подобно:

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

Това ще върне подробностите за най-ниския стоп номер за всеки ИД на изпращане. След това можете да филтрирате това допълнително, като просто използвате WHERE . Напр.

WHERE  Arrived = 1
AND    Departed = 0

Мисля, че добавянето на горното към оператора select в горната част ще върне резултатите:

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

Въпреки че може да съм разбрал напълно погрешно въпроса.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TABLOCK срещу TABLOCKX

  2. Трикове за непрекъснато подобряване на мониторинга на базата данни

  3. NEWID() срещу NEWSEQUENTIALID() в SQL Server:Каква е разликата?

  4. Не може да се зареди файл или сборка „crystal solutions.windows.forms,version=13.0.2000.0“

  5. Как да получите разлика между два реда за поле на колона?