17,377
社区成员
发帖
与我相关
我的任务
分享
-- 你的贴子发重了,另一贴已回复你
SQL>
SQL> create table sales(GNO varchar(10), UNO varchar(10), NUM int);
Table created
SQL> create table goods(GNO varchar(10), GNAME varchar(10), GPRICE int, TNO varchar(10));
Table created
SQL> begin
2 insert into sales values('g001','u001',2);
3 insert into sales values('g001','u002',1);
4 insert into sales values('g002','u001',3);
5 insert into sales values('g002','u003',4);
6
7 insert into goods values('g001','water ',2 ,'t001');
8 insert into goods values('g002','milk ',4 ,'t001');
9 insert into goods values('g003','nuts ',10 ,'t002');
10 insert into goods values('g004','rice ',30 ,'t002');
11 insert into goods values('g005','apple ',5 ,'t003');
12 insert into goods values('g006','orange',3 ,'t003');
13 end;
14 /
PL/SQL procedure successfully completed
SQL> alter table sales add total int ;
Table altered
SQL> update sales t
2 set total = (select t.num * gprice from goods where gno = t.gno)
3 where exists(select * from goods where gno = t.gno);
4 rows updated
SQL> col num format a10;
SQL> col total format a10;
SQL> select * from sales ;
GNO UNO NUM TOTAL
---------- ---------- ---------- ----------
g001 u001 2 4
g001 u002 1 2
g002 u001 3 12
g002 u003 4 16
SQL> drop table sales purge;
Table dropped
SQL> drop table goods purge;
Table dropped
SQL>