求教用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的调减。
(填一行调减数据,这样更直观)
展开
 我来答
大侠联盟
2017-02-22 · TA获得超过244个赞
知道答主
回答量:62
采纳率:66%
帮助的人:36.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(+)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式