我怎样才能得到最小和最大倍日期,公交车和路线分组。我认为这是所谓的差距,岛屿

问题描述 投票:-2回答:1

我想获得的最小和最大次,每次司机去的路线时间。他们可以回去第四同一路线多次在一天,但我需要每次倍。

我搜索只带回一个路线(7)和一个路线1,但每个司机驱使这些路线的不止一个。我已经展示了在第一天为一个总线低于预期的结果

SELECT Date AS Service_date, route, bus, MIN(Time) AS Starttime
  , MAX(Time) AS EndTime, first_name, last_name
FROM dbo.TRDATE
WHERE (route > 0) AND (drv <> 777) AND (drv > 0) 
GROUP BY Date, route, bus, first_name, last_name
ORDER BY Starttime

预计数据:

Service_date  route bus     Starttime   EndTime    first_name   last_name
2019-01-02      1   3903    06:28:00    11:08:00   ANTHONY      INGRAM
2019-01-02      7   3903    11:08:00    11:30:00   ANTHONY      INGRAM
2019-01-02      1   3903    11:30:00    12:31:00   ANTHONY      INGRAM
2019-01-02      7   3903    12:31:00    13:41:00   ANTHONY      INGRAM
2019-01-02      1   3903    13:44:00    15:03:00   MARIE        SNEED
2019-01-02      7   3903    15:03:00    17:31:00   MARIE        SNEED
2019-01-02      7   3903    17:34:00    18:40:00   HECTOR       TANABE
2019-01-02      1   3903    18:40:00    19:34:00   HECTOR       TANABE
  1. 样本数据 'enter code here'
sql sql-server sql-server-2008-r2
1个回答
0
投票

通过添加秒钟,我的时间和增加一个小时列,差距和岛屿问题就解决了。

SELECT TOP (100) PERCENT Date AS Service_date, route, bus, MIN(Time) AS Starttime, MAX(Time) AS EndTime, drv, hour FROM dbo.TRDATE WHERE (route > 0) AND (drv <> 777) AND (drv > 0) GROUP BY Date, bus, route, drv, hour order by service_date, bus,Starttime

© www.soinside.com 2019 - 2024. All rights reserved.