向各位请教个问题,
我想从表2取一个字段来和表1的一个字段相加然后更新表1的这个字段,两个表有外键关联,请问这条SQL怎么写啊
象MSSQL就可以支持update table1 set aa=a.aa+b.bb from table1 a,table2 b where a.id=b.id?
谢谢
我想从表2取一个字段来和表1的一个字段相加然后更新表1的这个字段,两个表有外键关联,请问这条SQL怎么写啊
象MSSQL就可以支持update table1 set aa=a.aa+b.bb from table1 a,table2 b where a.id=b.id?
谢谢
解决方案 »
- 在執行alter table move tablespace之後,table的存檔數度變得超慢的?
- 90分给1人,其他大家分求,ORACLE同步到MYSQL方案。
- 用户模式和完全模式的导出和导入
- Oracle中怎么实现dateadd的功能?
- 查询的问题!
- 请教case的用法,谢谢!!!!
- Oracle9i Update时出现的奇怪问题
- 如何手动使用sql*plus添加数据库实例而非使用dbassist?
- 如何删除一下一大段废表?
- dbca创建数据库的tnsnames.ora问题
- 简单的问题!查询日期为20050511的记录,where riqi=日期,这个sql语句怎么表达!
- 简单SQL 语句???
这样行不?
=(select b.bb,bb.bb1 from table2 b where table1.id=b.id and rownum <=1 )
update table1 set (aa,aa1)
=(select b.bb,b.bb1 from table2 b where table1.id=b.id and rownum <=1 )
set aa = (select a.aa + b.bb from table2 b where a.id = b.id)
where exists(select 1 from table2 b where a.id = b.id)
UPDATE LAB_ZSHQ A2
SET A2.F_PRECLOSE = A2.F_PRECLOSE*(
SELECT exp(sum(ln(A1.F_XS))) FROM LAB_ZSHQ A1
WHERE A1.ZS_ID=A2.ZS_ID AND A1.F_DATE <=A2.F_DATE),
A2.F_OPEN = A2.F_OPEN*(
SELECT exp(sum(ln(A1.F_XS))) FROM LAB_ZSHQ A1
WHERE A1.ZS_ID=A2.ZS_ID AND A1.F_DATE <=A2.F_DATE),
A2.F_HIGH = A2.F_HIGH*(
SELECT exp(sum(ln(A1.F_XS))) FROM LAB_ZSHQ A1
WHERE A1.ZS_ID=A2.ZS_ID AND A1.F_DATE <=A2.F_DATE),
A2.F_LOW = A2.F_LOW*(
SELECT exp(sum(ln(A1.F_XS))) FROM LAB_ZSHQ A1
WHERE A1.ZS_ID=A2.ZS_ID AND A1.F_DATE <=A2.F_DATE),
A2.F_CLOSE = A2.F_CLOSE*(
SELECT exp(sum(ln(A1.F_XS))) FROM LAB_ZSHQ A1
WHERE A1.ZS_ID=A2.ZS_ID AND A1.F_DATE <=A2.F_DATE)
WHERE A2.ZS_ID=LF_ID
;
--此语句难道不能只查一次???
SELECT exp(sum(ln(A1.F_XS))) FROM LAB_ZSHQ A1
WHERE A1.ZS_ID=A2.ZS_ID AND A1.F_DATE <=A2.F_DATE)
TO:hevin(没有什么是不可能的) 你那样好像只能更新一条记录呀,按楼主的意思,关联出来可能会有多条记录,那就要更新多条记录了。下面这个又如何改呢:
update tb1
set code = b.code,
num = b.num
from tb1 inner join (
select code, sum(num) as num from tb1 group by code
) as b on tb1.code = b.code