问题1:
TABLE A: ID、DATE、PRICE1、PRICE2、OBJECTNAME
TABLE B: PRICE1、PRICE2、OBJECTNAMEA、B通过OBJECTNAME相关联, A中的OBJECTNAME在B中都存在,现在要更新B,使B中的每个OBJECTNAME的PRICE1、PRICE2都为最新的。问题2:TABLE A: CLASS(班级)、MONEY(钱数)、DATE(日期)
TABLE B: STUDENT(学生)、CLASS(班级)、MONEY(用钱数目)、GRADE(贫困等级)、COME(出生地)求出来自山西的、贫困等级为一级的学生用完钱后,每个班级的剩余钱数
TABLE A: ID、DATE、PRICE1、PRICE2、OBJECTNAME
TABLE B: PRICE1、PRICE2、OBJECTNAMEA、B通过OBJECTNAME相关联, A中的OBJECTNAME在B中都存在,现在要更新B,使B中的每个OBJECTNAME的PRICE1、PRICE2都为最新的。问题2:TABLE A: CLASS(班级)、MONEY(钱数)、DATE(日期)
TABLE B: STUDENT(学生)、CLASS(班级)、MONEY(用钱数目)、GRADE(贫困等级)、COME(出生地)求出来自山西的、贫困等级为一级的学生用完钱后,每个班级的剩余钱数
第二个问题已经解决,
第一个:
UPDATE b SET (PRICE1,PRICE2)=(SELECT PRICE1,PRICE2 FROM a WHERE b.OBJECTNAME=OBJECTNAME AND ROWNUM=1)
WHERE EXISTS(SELECT 1 FROM a WHERE b.OBJECTNAME=OBJECTNAME) ;
update b
set price1=(select price1 from a where a.objectname=b.objectname),
price2=(select price2 from a where a.objectname=b.objectname)
where exists (select 1 from a where a.objectname=b.objectname)
--2、
select a.class,a.money-bb.newmoney
from a,(select class,sum(money) newmoney
from b where b.come='山西' and grade='一级'
group by class) bb
where a.class=bb.class
--怎么可能??
--1、
UPDATE b SET (PRICE1,PRICE2)=(SELECT PRICE1,PRICE2 FROM a WHERE b.OBJECTNAME=OBJECTNAME AND ROWNUM=1)
WHERE EXISTS(SELECT 1 FROM a WHERE b.OBJECTNAME=OBJECTNAME) ;--2、
select t1.class,(t1.sum2-Nvl(t2.sum1,0)) sum_money from
(select class,sum(money) sum2 from a group by class) t1,
(select class,sum(money) sum1 from b where grade='一级' AND come='山西' group by class) t2
where t1.class=t2.class(+)
第一个:
UPDATE b SET (PRICE1,PRICE2)=(SELECT PRICE1,PRICE2 FROM a WHERE b.OBJECTNAME=OBJECTNAME AND ROWNUM=1)
WHERE EXISTS(SELECT 1 FROM a WHERE b.OBJECTNAME=OBJECTNAME) ;问题有2:1、会提示FROM a 中的a不存在 2、把a换成表名后算出来不能保证是最新的第二个问题我昨天试的了 报什么错我不记得了
UPDATE tableB b SET (PRICE1,PRICE2)=(SELECT c.PRICE1,c.PRICE2 FROM tableA c WHERE b.OBJECTNAME=c.OBJECTNAME AND c.DATE=(SELECT Max(date) FROM tableA WHERE OBJECTNAME=c.OBJECTNAME) )
WHERE EXISTS(SELECT 1 FROM tableA a WHERE b.OBJECTNAME=OBJECTNAME) ;