当我运行此查询时:
select * from customertravel where PersonID in (1,2,7)
我明白了:
但是我想过滤结果如下:
我应该如何修改查询以获取第一个到达日期和最后一个离开日期?我知道我需要做一些分组,但我不知道如何使用它。.提前Thnkas ..
答案 0 :(得分:4)
假设x
和ArriveDate
是日期而不是字符串,则可以尝试以下操作:
LeaveDate
答案 1 :(得分:2)
您需要按日期以外的所有列进行分组,并找到MIN
和MAX
。万一您的日期为德语格式,则需要在计算总计之前将其转换:
SELECT
PersonID,
Name,
City,
MIN(CONVERT(DATE, ArriveDate, 104)) AS FirstArriveDate,
MAX(CONVERT(DATE, LeaveDate, 104)) AS LastLeaveDate
FROM customertravel
WHERE PersonID IN (1, 2, 7)
GROUP BY PersonID, Name, City