如何获得最近的约会日期

时间:2012-04-16 07:17:16

标签: sql sql-server sql-server-2000

使用SQL Server 2000

我希望获得每个ID的最大值(日期)。

ID Date Total

01 02/01/2012 500
01 01/02/2012 1000
01 02/03/2012 350
02 17/01/2012 250
02 15/02/2012 150
03 01/12/2011 225
...
...

我希望获得每个ID的最大值(日期)。

尝试查询

Select id, total from table1 where date > max(date) group by id, total

获取错误消息

“聚合可能不会出现在WHERE子句中,除非它位于HAVING子句或选择列表中包含的子查询中,并且正在聚合的列是外部引用。”

预期产出

ID Date Total

01 02/03/2012 350
02 15/02/2012 150
03 01/12/2011 225
...
...

如何做到这一点。

需要查询帮助

3 个答案:

答案 0 :(得分:4)

Select id, date, total 
from table1 t
where date = (select max(date) from table1 where id = t.id
group by id)

答案 1 :(得分:3)

这应该适合你:

select *
from total t inner join
    (   select id, max(date) as date
        from total
        group by id ) m on t.id = m.id and t.date = m.date

答案 2 :(得分:0)

此查询将起作用

select * from dbo.Table t1
where Date >= (select max(Date) from dbo.Table t2
where t1.ID = t2.ID)