我有临时表的结果(如下面的存储过程),我想从这个临时表中只提取最大stage_dt
的记录,这将删除客户列表中的重复项。 rownum
列是标识。如何从此临时表中仅选择列stage_dt
中具有最大日期的记录?
lname fname RO# fow_visit stage_dt T_Stage status rownum
ADINYIRA DELA 09-0373 2011-10-06 2010-09-28 17:02:30.460 Y 6
ADINYIRA DELA 09-0373 2011-10-06 2009-10-08 12:50:33.007 T2 Y 7
APPELLO CAROL 08-0493 2011-04-13 2011-04-08 12:48:31.310 Y 40
APPELLO CAROL 08-0493 2011-04-13 2008-10-13 18:20:49.210 4 Y 41
BLACK ERMA 10-0054 2011-10-06 2010-02-02 16:04:42.273 T0 Y 90
BLACK ERMA 10-0054 2011-10-06 2010-02-02 16:23:11.193 T1c Y 91
BROWN VERSIE 07-0455 2011-09-22 2007-10-17 15:19:10.330 0(is) Y 123
BROWN VERSIE 07-0455 2011-09-22 2009-08-21 12:23:50.980 T2 Y 124
答案 0 :(得分:0)
您可以尝试此查询:
with temp_cte([RO#], [stage_dt])
as
(
select [RO#], max([stage_dt]) as [stage_dt]
from temp
group by [RO#]
)
select temp.*
from temp
join temp_cte on temp_cte.[RO#] = temp.[RO#]
and temp_cte.[stage_dt] = temp.[stage_dt]
还有其他方法,但我认为这很简单。
答案 1 :(得分:0)
你可以试试这个:
SELECT * FROM temp_table
WHERE stage_dt IN (SELECT max(stage_dt) FROM temp_table)
根据数据库系统, IN 运算符可以替换为 = 或其他适合数据库系统的运算符。