aaa bbb ccc
001 10 2008-1-1
001 20 2008-1-1
001 15 2008-1-3
001 20 2008-1-3
002 30 2008-1-4
002 40 2008-1-5
003 50 2008-1-6
... .. ....希望得到
001 35
002 40
003 50就是根据最后的时间对aaa做GROUP,求bbb的总和,谢谢!
001 10 2008-1-1
001 20 2008-1-1
001 15 2008-1-3
001 20 2008-1-3
002 30 2008-1-4
002 40 2008-1-5
003 50 2008-1-6
... .. ....希望得到
001 35
002 40
003 50就是根据最后的时间对aaa做GROUP,求bbb的总和,谢谢!
select aaa,sum(bbb)
from a,
(
select aaa,max(ccc) last_ccc
from a
group by aaa
) b
where a.ccc=b.last_ccc
and a.aaa=b.aaa
group by aaa
from (
select aaa,sum(bbb) bbb,ccc
from a
group by aaa,ccc
)
group by aaa
不是最后日然后当天求后虽然在本题中,可以显示出楼主所需要的数据,不过数据一变,你的就不对了比如aaa bbb ccc
001 20 2008-1-1
001 20 2008-1-1
001 15 2008-1-3
001 20 2008-1-3
002 50 2008-1-4
002 40 2008-1-5
003 50 2008-1-6
... .. ....
我只调整两行数据
你出来的结果就是
001 40
002 50
003 50
那应该是
select aaa,bbb
from (
select aaa,sum(bbb) bbb, max(ccc) ccc
from a
group by aaa,ccc
)
不知道对不对,我这里没有工具验证
select x.aaa, x.bbb
from (
select t.aaa,sum(t.bbb) bbb,t.ccc
from temp t,(select max(ccc) ccc from temp group by aaa) a
where t.ccc = a.ccc
group by t.aaa,t.ccc
) x