使用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
...
...
如何做到这一点。
需要查询帮助
答案 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)