繁体   English   中英

如何对两个表的不同列减法进行 Oracle DB 查询

[英]how can i make Oracle DB query to two table different column subtraction

CREATE TABLE member (
member_no   NUMBER  PRIMARY KEY ,
member_money NUMBER NOT NULL,
);
CREATE TABLE MY_PAY(
pay_no NUMBER PRIMARY KEY,
member_no NUMBER,
pay_price number
);

我想要 MEMBER.member_money -(MINUS) MY_PAY.pay_price =?? 和 ?? 插入 MEMBER.member_money

所以我做这个查询

UPDATE MEMBER
set MEMBER.member_money = (select sum (MEMBER.member_point) - (MY_PAY.pay_price)
from MY_PAY
where MY_PAY.member_no = MEMBER.member_no
group by MEMBER.member_no)
where MEMBER.member_no =2 ;

但它不起作用。 我不是英国人,所以我不擅长英语对不起,但我需要你的帮助

您可以使用:

UPDATE MEMBER m
set member_money = member_money - (select sum(pay_price)
                                   from   MY_PAY p
                                   where  p.member_no = m.member_no)
where  member_no =2 ;

其中,对于样本数据:

INSERT INTO member VALUES (2, 2000);

INSERT INTO my_pay
SELECT 1, 2, 100 FROM DUAL UNION ALL
SELECT 2, 2, 200 FROM DUAL;

然后,在UPDATE

SELECT * FROM member;

输出:

MEMBER_NO MEMBER_MONEY
2 1700

db<> 在这里摆弄

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM