最近的日期行有两个唯一的IDS

时间:2012-11-19 23:45:18

标签: sql date greatest-n-per-group

我正在尝试创建一个查询,该查询将为州和tier3ID组合提取最新的行,同时还显示其他三列。

EFFECTIVE_DATE|STATE|ELIGIBLE|INTONLY|AOPELIGIBLE|TIER3ID
01-JAN-05     | AK  | Yes    | No    | No        |1101
15-NOV-12     | IN  | Yes    | No    | No        |1101
01-JAN-05     | AZ  | Yes    | No    | No        |1101

我尝试过的所有内容都会让我获得数据组合,但除非我将它们分组,否则我无法显示其他三行。

我基本上想要:

select state, tier3id, eligible,
max(effective_date)
from thirdtiereligibilityeq
group by state, tier3id, eligible

虽然符合条件,但只有AOPeligible显示这些行。

1 个答案:

答案 0 :(得分:0)

以下是您正在寻找的查询:

SELECT T.*
FROM thirdtiereligibilityeq T
INNER JOIN (SELECT T2.state
                  ,T2.tier3id
                  ,MAX(T2.effective_date) AS [last_effective_date]
            FROM thirdtiereligibilityeq T2
            GROUP BY T2.state, T2.tier3id) L ON L.state = T.state
                                               AND L.tier3id = T.tier3id
                                               AND L.last_effective_date = T.effective_date

希望这会对你有所帮助。