Sql 如何获取 MAX 和 MIN 历史数据以及相应的用户

Sql how to get MAX and MIN Historydata along with corresponding user

我有这个 table 与 HistoryDate 和用户。我需要查询 Max(Historydate), User corresponind to Maxdate, Min(HistoryDate), User corresponding to MinDate for each ReviewID 这样

   ModifiedDate |ModifiedBy| CreatedDate  | CreatedBy |ReviewId
  2/16/17 12:58 | Susan    | 2/7/17 15:39 | John      | 1
  2/15/17 13:25 | Sam      | 2/9/17 20:27 | John      | 2

我可以使用 table 变量查询它,但想知道是否有其他方法可以获取它。

尝试在 FROM 子句中使用子查询来获取每个最小值和最大值。为了只获得每条评论的 min/max,您需要像这样使用 GROUP BY ReviewID

SELECT max.date AS maxDate, max.user AS maxUser, min.date AS minDate, 
min.user AS minUser
FROM (
    (SELECT MAX(HistoryDate) date, user, ReviewID
    FROM HistoryTable
    GROUP BY ReviewID) max
        JOIN 
    (SELECT MIN(HistoryDate) date, user, ReviewID
    FROM HistoryTable
    GROUP BY ReviewID) min
        ON max.ReviewID = min.ReviewID
)

嗨,玩了几天脚本后,这对我有用。

SELECT ModifiedDate, ModifiedBy, CreatedDate ,CreatedBy,  crt.ReviewID 
     FROM   (SELECT  HistoryDate  CreatedDate, ReviewId,   [User] CreatedBy FROM HistoryTable 
        WHERE HistoryDate in (SELECT min(HistoryDate)  FROM  HistoryTable GROUP BY ReviewID )) crt
INNER JOIN
    (SELECT HistoryDate  ModifiedDate, ReviewID, [User] ModifiedBy FROM  HistoryTable 
        WHERE HistoryDate in (SELECT Max(HistoryDate)  FROM HistoryTable GROUP BY ReviewID )) Modi
ON crt.ReviewId = Modi.ReviewID
         ORDER BY crt.ReviewID