日期:2014-05-16  浏览次数:20541 次

如何使用子查询的结果集再嵌套查询?
本帖最后由 robotbo 于 2014-02-14 13:17:18 编辑
如有一个表tb_list(仅为举例,实际情况复杂些)
id   user     ddate        mmoney
1    用户1    2014-1-1     100.00
2    用户2    2014-1-2     150.00
3    用户1    2013-12-1    90.00
4    用户1    2014-1-10    50.00

下面这个嵌套查询有问题,嵌套查询的表不能用别名
select user,(select sum(mmoney) from temp t where rownum<=temp.rownum) from(select row_number()over(order by ddate asc) as rownum,* from tb_list where user='用户1')temp

如果用临时表应该可以实现,但我不想用临时表...问一下各位高手,还有什么其它办法可以实现我的要求?
------解决方案--------------------
这样就行,用with表达式:
;with temp
as
(
select row_number()over(order by ddate asc) as rownum,* 
from tb_list where user='用户1'
)

select user,(select sum(mmoney) from temp t where rownum<=temp.rownum) 
temp