oracle用sum函数实现累加
2007-10-26 15:37
281 查看
嘿嘿,虽然写了很多次,但是真正的明白会用还是需要时间阿 。。
下面来一起看看论坛里的一个oracle方面的问题:
====================Question=========================
jmbdat dayt y mon
27-9月 -07 2033.2 2007 200709
28-9月 -07 2750.28 2007 200709
29-9月 -07 2885.68 2007 200709
30-9月 -07 2556.68 2007 200709
01-10月-07 2903.04 2007 200710
02-10月-07 1002.96 2007 200710
03-10月-07 1038.24 2007 200710
对上边的表用sql处理下 变成下面的
jmbdat dayt y mon mont
27-9月 -07 2033.2 2007 200709 2033.2
28-9月 -07 2750.28 2007 200709 4783.28
29-9月 -07 2885.68 2007 200709 7669.16
30-9月 -07 2556.68 2007 200709 20225.84
01-10月-07 2903.04 2007 200710 2903.04
02-10月-07 1002.96 2007 200710 3906
03-10月-07 1038.24 2007 200710 4944.24
该怎么做啊?
==================Solution=========================
SQL:
select tt.*,
sum(tt.dayt) over (partition by tt.mon order by tt.jmbdat,tt.y,tt.mon) as sum_dayt
from tablename tt;
Result :
JMBDAT DAYT Y MON SUM_DAYT
----------- ---------- ---------- ------ ----------
2007-9-27 2033.2 2007 200709 2033.2
2007-9-28 2750.28 2007 200709 4783.48
2007-9-29 2885.68 2007 200709 7669.16
2007-9-30 2556.68 2007 200709 10225.84
2007-10-1 2903.04 2007 200710 2903.04
2007-10-2 1002.96 2007 200710 3906
2007-10-7 1038.24 2007 200710 4944.24
7 rows selected
下面来一起看看论坛里的一个oracle方面的问题:
====================Question=========================
jmbdat dayt y mon
27-9月 -07 2033.2 2007 200709
28-9月 -07 2750.28 2007 200709
29-9月 -07 2885.68 2007 200709
30-9月 -07 2556.68 2007 200709
01-10月-07 2903.04 2007 200710
02-10月-07 1002.96 2007 200710
03-10月-07 1038.24 2007 200710
对上边的表用sql处理下 变成下面的
jmbdat dayt y mon mont
27-9月 -07 2033.2 2007 200709 2033.2
28-9月 -07 2750.28 2007 200709 4783.28
29-9月 -07 2885.68 2007 200709 7669.16
30-9月 -07 2556.68 2007 200709 20225.84
01-10月-07 2903.04 2007 200710 2903.04
02-10月-07 1002.96 2007 200710 3906
03-10月-07 1038.24 2007 200710 4944.24
该怎么做啊?
==================Solution=========================
SQL:
select tt.*,
sum(tt.dayt) over (partition by tt.mon order by tt.jmbdat,tt.y,tt.mon) as sum_dayt
from tablename tt;
Result :
JMBDAT DAYT Y MON SUM_DAYT
----------- ---------- ---------- ------ ----------
2007-9-27 2033.2 2007 200709 2033.2
2007-9-28 2750.28 2007 200709 4783.48
2007-9-29 2885.68 2007 200709 7669.16
2007-9-30 2556.68 2007 200709 10225.84
2007-10-1 2903.04 2007 200710 2903.04
2007-10-2 1002.96 2007 200710 3906
2007-10-7 1038.24 2007 200710 4944.24
7 rows selected
相关文章推荐
- oracle用sum函数实现累加
- oracle用sum函数实现累加
- Oracle over()分析函数实现累加
- oracle 月销售总金额的累加计算,实现 n = (n-1) + (n-2)
- Oracle 累加和实现
- oracle sql语句实现累加、累减、累乘、累除
- oracle sql语句实现累加、累减、累乘、累除
- Oracle 实现累加(全)
- oracle实现累加,累计百分比计算
- oracle 月销售总金额的累加计算,实现 n = (n-1) + (n-2)
- oracle sql语句实现累加、累减、累乘、累除
- Oracle 11gR2 RAC 使用默认service实现负载均衡
- mybatis 实现oracle主键自增的机制
- Oracle三种循环(For、While、Loop)实现九九乘法表
- 如何在Oracle 中实现类似自动增加 ID 的功能?
- Oracle实现top功能的sql语句
- java累加和校验实现方式16进制
- Oracle学习之路-- 案例分析实现行列转换的几种方式
- oracle+mybatis 使用动态Sql当插入字段不确定的情况下实现批量insert