PLSQL:如何获得多个版本的最新记录

时间:2015-02-12 18:41:52

标签: plsql group-by max

我有一个包含多个描述版本的表,需要根据字段VALFR获取最新描述。 这就是我所拥有的:

OBJECT_ID   VALFR           DESCRIPTION
2000022732  20.140.527.170.800  IRN 50624 SOFPHONE CIPC CISCO IP COMMUNI
2000022732  20.140.527.171.235  IRN 50624 SOFPHONE CIPC CISCO
2000022732  20.140.725.193.455  IRN 50624 CISCO IP COMMUNICATOR
2000033166  20.130.926.150.207  IRN 11950 SAP MERCOSUR
2000033184  20.140.527.185.736  IRN 70004 MATERIEL
2000033184  20.140.530.193.807  IRN 70004 MATERIEL
2000033184  20.140.728.114.539  IRN 70004 MATERIALES

这就是我需要的:

2000033166  20.130.926.150.207  IRN 11950 SAP MERCOSUR
2000022732  20.140.725.193.455  IRN 50624 CISCO IP COMMUNICATOR
2000033184  20.140.728.114.539  IRN 70004 MATERIALES

我无法让MAX()和GROUP BY OBJECT_ID一起工作...... 提前谢谢。

2 个答案:

答案 0 :(得分:0)

这可能有用;

SELECT T1.* FROM table_name T1,
(select T2.OBJECT_ID,MAX(T2.VALFR) FROM table_name T2 GROUP BY T2.OBJECT_ID) AS T3
WHERE T1.OBJECT_ID = T3.OBJECT_ID AND T1.VALFR = T3.VALFR  

答案 1 :(得分:0)

我不知道我是否以最佳方式解决了这个问题,但在文本表中使用LEFT JOIN解决了这个问题。 但是如果没有Seri​​f Emek的帮助,我可能不会到达那里! 非常感谢你!