求教用SQL语言(Oracle)实现记录中某一值添加到另一条记录的新字段中。 50
如图显示。就是把A表里面“调减”的部分放到“正常”中一个新字段中。我写的sql类似这样:selectID,编号,类型,金额,(selectsum(金额)fromAbwhe...
如图显示。就是把A表里面“调减”的部分放到“正常”中一个新字段中。
我写的sql类似这样:
select ID,
编号,
类型,
金额,
(select sum(金额) from A b where a.ID=b.ID and b.类型='调减') as 调减,
金额-调减 as 可用
from A a
where a.类型 <> '调减'
但是这样出来的调减会把全表的调减列都加起来,而不是只有对应某一ID的调减。
(填一行调减数据,这样更直观) 展开
我写的sql类似这样:
select ID,
编号,
类型,
金额,
(select sum(金额) from A b where a.ID=b.ID and b.类型='调减') as 调减,
金额-调减 as 可用
from A a
where a.类型 <> '调减'
但是这样出来的调减会把全表的调减列都加起来,而不是只有对应某一ID的调减。
(填一行调减数据,这样更直观) 展开
1个回答
展开全部
以下代码经过本地ORACLE数据库测试通过,你的问题是没有进行分组。
SELECT m.id,
m.编号,
m.类型,
m.金额,
nvl(n.tj
,0) AS 调减,
nvl((m.金额 - n.tj)
,0) AS 可用
FROM (SELECT a.id,
a.编号,
a.类型,
a.金额
FROM a
WHERE a.类型 IN ('正常'
,'调增')) m,
(SELECT a.id,
SUM(金额) tj
FROM a
WHERE a.类型 = '调减'
GROUP BY a.id) n
WHERE m.id = n.id(+)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询