我正在分析一个包含CrewID及其时间表的数据库。我正在选择“ X”天,这意味着他们有一天休息。我想找回他们的第一天假期,只有最后一天休息。我提供的代码导致在给定日期范围内的所有天假。如何确保仅剩下第一天和最后一天两个结果?
我已经尝试过min([ActivityDate])和max([ScheduleDepartureDate]),但这会导致错误。
SELECT
-- [LogId]
-- ,[Company]
-- ,[ScheduleType]
[CrewID]
,[ActivityDate]
,[Position]
-- ,[Base]
,[ScheduleDepartureDate]
,[TripNo]
*/
FROM [DSWAREHOUSE].[DS_ADMIN].[F_CrewSchedule_Actual] with (nolock)
where TripNo = 'X' and ActivityDate between getdate() and getdate()+7
order by CrewID asc , ActivityDate asc
;
以上代码的输出为:
CrewID ActivityDate Position ScheduleDepartureDate TripNo
211 2019-07-18 00:00:00.000 CA 2019-07-18 00:00:00.000 X
314 2019-07-17 00:00:00.000 CA 2019-07-17 00:00:00.000 X
314 2019-07-18 00:00:00.000 CA 2019-07-18 00:00:00.000 X
343 2019-07-12 00:00:00.000 CA 2019-07-12 00:00:00.000 X
343 2019-07-13 00:00:00.000 CA 2019-07-13 00:00:00.000 X
343 2019-07-14 00:00:00.000 CA 2019-07-14 00:00:00.000 X
343 2019-07-15 00:00:00.000 CA 2019-07-15 00:00:00.000 X
343 2019-07-16 00:00:00.000 CA 2019-07-16 00:00:00.000 X
343 2019-07-17 00:00:00.000 CA 2019-07-17 00:00:00.000 X
343 2019-07-18 00:00:00.000 CA 2019-07-18 00:00:00.000 X...
I would like it to result in:
211 2019-07-18 00:00:00.000 CA 2019-07-18 00:00:00.000 X
314 2019-07-17 00:00:00.000 CA 2019-07-17 00:00:00.000 X
314 2019-07-18 00:00:00.000 CA 2019-07-18 00:00:00.000 X
343 2019-07-12 00:00:00.000 CA 2019-07-12 00:00:00.000 X
343 2019-07-18 00:00:00.000 CA 2019-07-18 00:00:00.000 X...