Tôi nghĩ bạn muốn một cái gì đó như thế này:
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
Thao tác này sẽ trả về thông tin chi tiết về số lượng dừng thấp nhất cho mỗi ID điều phối. Sau đó, bạn có thể lọc thêm thông tin này bằng cách sử dụng WHERE
. Ví dụ:
WHERE Arrived = 1
AND Departed = 0
Tôi nghĩ rằng việc thêm phần trên vào câu lệnh select ở trên cùng sẽ mang lại kết quả:
Dispatch_ID NextStop Arrived Departed
=========== ======== ======= ========
6410 1 True False
50589 1 True False
50687 1 True False
Mặc dù tôi có thể đã hoàn toàn hiểu sai câu hỏi.