oracle乘法运算,oracle实现相乘话语

oracle实现相乘语句

现在有一个表,表里有列day和A,想新增一个列B,

当前B值为B=1/5×上一日B值+4/5×当前A值。

若无上一日B值,则用10代替。该怎么计算,好急阿,求各位大神赐教!!!

------解决方案--------------------

WITH test AS (

SELECT 12 DAY,10 a,0 b FROM dual UNION ALL

SELECT 11,8,NULL FROM dual )

SELECT DAY,

A,

b,

(0.2 *

(SELECT DECODE(B, NULL,10, B) FROM TEST K WHERE K.DAY = T.DAY - 1) +

0.8 * A)

FROM TEST T

是这个意思么?

------解决方案--------------------

WITH test AS (

SELECT 12 DAY,10 a,0 b FROM dual UNION ALL

SELECT 11,8,NULL FROM dual UNION ALL

SELECT 13,8,8 FROM dual)

SELECT DAY,

A,

B,

(0.2 *

DECODE((SELECT B FROM TEST K WHERE K.DAY = T.DAY - 1),

NULL,

10,

(SELECT B FROM TEST K WHERE K.DAY = T.DAY - 1)) + 0.8 * A)

FROM TEST T

还是这个。。

------解决方案--------------------

SQL> create table tt_test (tday date,a number,b number);

Table created

SQL>

SQL> insert into tt_test (tday,a) values (to_date('2014/03/01','yyyy/mm/dd'),5);

1 row inserted

SQL> insert into tt_test (tday,a) values (to_date('2014/03/02','yyyy/mm/dd'),10);

1 row inserted

SQL> insert into tt_test (tday,a) values (to_date('2014/03/03','yyyy/mm/dd'),15);

1 row inserted

SQL> insert into tt_test (tday,a) values (to_date('2014/03/05','yyyy/mm/dd'),20);

1 row inserted

SQL> commit;

Commit complete

SQL>

SQL> update tt_test t1

2     set b = 1 / 5 *

3             decode((select b from tt_test where tday = t1.tday - 1),

4                    null,

5                    10,

6                    (select b from tt_test where tday = t1.tday - 1)) + 4 / 5 * a;

4 rows updated

SQL> commit;

Commit complete

SQL> select * from tt_test;

TDAY                 A          B

----------- ---------- ----------

2014/3/1             5          6

2014/3/2            10         10

2014/3/3            15         14

2014/3/5            20         18

SQL>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值