帮我处理一个问题:
比如一个表有A,B.C.D,四个字段,A存保单号,B存批单号,C存费率值,D存费率变化值。
A B C D
01 -- 0.1 0
01 01-1 0.3 0
02 -- 0.5 0
02 02-1 0.2 0
就是要把01对应的D的值改为01批单的费率减去保单的费率0.3-0.1,02对应的D的值改为02批单的费率减去保单的费率0.2-0.5
怎样用SQL语句实现,ORCALE的
.....
比如一个表有A,B.C.D,四个字段,A存保单号,B存批单号,C存费率值,D存费率变化值。
A B C D
01 -- 0.1 0
01 01-1 0.3 0
02 -- 0.5 0
02 02-1 0.2 0
就是要把01对应的D的值改为01批单的费率减去保单的费率0.3-0.1,02对应的D的值改为02批单的费率减去保单的费率0.2-0.5
怎样用SQL语句实现,ORCALE的
.....
-- ---------- ---------- ---------- ----------
01 -- .1 0 0
01 01-1 .3 0 .2
02 -- .5 0 0
02 02-1 .2 0 -.3
01 -- 0.1 0
01 01-1 0.3 0
01 01-2 0.3 0
02 -- 0.5 0
02 02-1 0.2 0
结果为
A B C D
01 -- 0.1 0
01 01-1 0.3 0.2
01 01-2 0.3 0.1
02 -- 0.5 0
02 02-1 0.2 -0.3
A B C D
01 -- 0.1 0
01 01-1 0.3 0
01 01-2 0.4 0
02 -- 0.5 0
02 02-1 0.2 0
结果为
A B C D
01 -- 0.1 0
01 01-1 0.3 0.2
01 01-2 0.4 0.2
02 -- 0.5 0
02 02-1 0.2 -0.3
SELECT T.C-S.C FROM TAB T
WHERE S.A=T.A AND T.B IS NOT NULL
)
WHERE S.B IS NULL
2 SELECT T.C-S.C FROM test T
3 WHERE S.A=T.A AND T.B IS NOT NULL
4 )
5 WHERE S.B IS NULL;
SELECT T.C-S.C FROM test T
*
ERROR at line 2:
ORA-01427: single-row subquery returns more than one row
应该这样吗 select t.c-s.c as result from .....
UPDATE tablename S SET S.D=(SELECT S.C-T.C FROM tablename T WHERE T.B IS NULL and T.A=S.A) WHERE S.B IS NOT NULL OK了