【问题标题】:How to get earliest of one column and get latest of another column in MSSQL如何在 MSSQL 中获取最早的一列并获取最新的另一列
【发布时间】:2018-11-06 14:10:38
【问题描述】:

当我运行这个查询时:

select * from customertravel where PersonID in (1,2,7)

我明白了:

但我想过滤结果是这样的:

我应该如何修改该查询以获取第一次到达日期和最后一次离开日期?我知道我需要做一些分组,但我不知道如何使用它..提前谢谢..

【问题讨论】:

    标签: sql sql-server datetime group-by


    【解决方案1】:

    假设您的 ArriveDateLeaveDate 是日期而不是字符串,您可以尝试以下操作:

    SELECT   PersonID,
             Name,
             City,
             MIN(ArriveDate),
             MAX(LeaveDate)
    FROM     customertravel
    WHERE    PersonID IN (1, 2, 7)
    GROUP BY PersonID,
             Name,
             City;
    

    【讨论】:

      【解决方案2】:

      您需要按除日期以外的所有列进行分组,然后找到MINMAX。万一您的日期是德语格式,您需要在计算汇总之前对其进行转换:

      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
      

      【讨论】:

        猜你喜欢
        • 2012-04-08
        • 2020-05-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多