oracle 循环取值 一天sql语句怎么实现? 30
表结构a_file(avarchar2(40),bdate,cnumber)数据abcA110/09/0110A110/09/0210A110/09/0310我想得到A1...
表结构 a_file (a varchar2(40), b date ,c number )
数据 a b c
A1 10/09/01 10
A1 10/09/02 10
A1 10/09/03 10
我想得到 A1 10/09/01 10
A1 10/09/02 20
A1 10/09/03 30
这样的数据用一条SQL怎么实现呢。得到数据的第个字段是 <=当前笔日期的SUM(C)的值,写了半天写不出来,求助啊,谢谢了 展开
数据 a b c
A1 10/09/01 10
A1 10/09/02 10
A1 10/09/03 10
我想得到 A1 10/09/01 10
A1 10/09/02 20
A1 10/09/03 30
这样的数据用一条SQL怎么实现呢。得到数据的第个字段是 <=当前笔日期的SUM(C)的值,写了半天写不出来,求助啊,谢谢了 展开
2个回答
展开全部
楼上朋友的SQL正确,但是有点复杂了,利用sum和分析函数over连续求和直接出来,这样写更效率(针对大数据量效果明显哦)。
select t.a, t.b, sum(t.c) over(order by t.b) from a_file t
select t.a, t.b, sum(t.c) over(order by t.b) from a_file t
追问
我使用那个朋友的方式没有成功,因为我那个是很多个表的关联,不好表述,就简单的描述了一下,我试试您的看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SELECT t.a AS t_a, t.b AS t_date, sum(t1.sumQty)
FROM a_file t
LEFT JOIN (
SELECT t2.b,SUM(t2.c) AS sumQty FROM a_file t2 GROUP BY t2.b
) t1 ON t1.b<=t.B
WHERE 1=1
GROUP BY t.a,t.b
order BY t.b
FROM a_file t
LEFT JOIN (
SELECT t2.b,SUM(t2.c) AS sumQty FROM a_file t2 GROUP BY t2.b
) t1 ON t1.b<=t.B
WHERE 1=1
GROUP BY t.a,t.b
order BY t.b
追问
多谢,我试试去,我折腾一天了都没成功,哎。。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询