如何获取具有最大EffectivityDate的不同TypeID的行?
原始表
-----------------------------------------
| ID | TypeID | Value | EffectivityDate |
-----------------------------------------
| 1 | 1 | 2.3 | 1990-01-01 |
| 2 | 1 | 3.4 | 1999-10-31 |
| 3 | 2 | 1.1 | 1990-01-01 |
| 4 | 2 | 2.2 | 1999-10-31 |
| 5 | 3 | 6.1 | 1999-10-31 |
-----------------------------------------
查询结果
-----------------------------------------
| ID | TypeID | Value | EffectivityDate |
-----------------------------------------
| 2 | 1 | 3.4 | 1999-10-31 |
| 4 | 2 | 2.2 | 1999-10-31 |
| 5 | 3 | 6.1 | 1999-10-31 |
-----------------------------------------
有帮助吗?
最佳答案
您可以在子查询中获取最大的EffectiveDate,然后使用自己的表再次加入它,
SELECT a.*
FROM tableName a
INNER JOIN
(
SELECT TypeID,MAX(EffectivityDate) maxDate
FROM tableName
GROUP BY TypeID
) b ON a.TypeID = b.TypeID AND
a.EffectivityDate = b.maxDate
SQLFiddle Demo