1

使用 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
...
...

这个怎么做。

需要查询帮助

4

3 回答 3

4
Select id, date, total 
from table1 t
where date = (select max(date) from table1 where id = t.id
group by id)
于 2012-04-16T07:22:26.710 回答
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
于 2012-04-16T07:25:38.533 回答
0

此查询将起作用

select * from dbo.Table t1
where Date >= (select max(Date) from dbo.Table t2
where t1.ID = t2.ID)
于 2012-04-16T19:35:38.167 回答