SQL语句不能正确执行,请bzszp(www.bzszp.533.net)进来一下,当然也欢迎其他XDJM 请问在ORACLE中该如何写SQL才能达到相同的效果? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 bzszp(www.bzszp.533.net) ,刚才很感谢你,我又仔细想过了,在SQLSERVER中,如果数据不对应的话,那么以后的WHERE T1.C1 = T2.C2 .....就会把不对应的数据完全去掉,而把对应的数据自动汇总,我做了好几个测试了,都没有问题。 如果用update t1 set (c1,c2...) = (select ,c1,c2......的话如果select语句返回的结果集大于1就会报错,那实际上就只能一条一条的更新,就没有起到批量update的作用了! oracle只能这样做嵌套查询更新不会达到你想想的要求。 update t1 set t1.col1=t1.col1+(select nvl(sum(t2.col1),0) from t2 where t2.pri=t1.pri); to lijin75(李进) :你的这个方法我试过了,但有如下问题。如果我的T1有两条记录,T2也有两天记录,然后T2的每一条记录对应T1的每一条记录,也就是说T2的每一条记录可以对应修改T1的一条记录,但如果用这种方法,因为T2的两条记录在T1中都有对应所以不能区分出每一条的对应情况来,结果就是将T1的UPDATE字段,修改为T2中两条记录对应字段的总和,而这样是错误的。 或者可以考虑用rowid来区分两条记录。rowid是唯一的。最好在表中加入唯一性字段id之类的来标识 update account_money a set a.ssye = (select a.ssye + b.authorize_pay from fund_apply_original_return b where a.year = b.year and a.unit_code = b.budget_unit and a.subject_code = b.subject_code and a.item_code = nvl(b.item_code,'0')) oracle process和sga有关系吗? 求sql,确保多个用户获取的数据不同。 一道有关索引的问题 oracle客户端连接不到服务器 RMAN备份怎么将本地备份到远程主机去? 一个SQL多表联合更新的问题 高深问题,关于ODAC中运行触发器的怪现象。 如果对一个表进行两次左关联呢? sqlldr失败后,如何回滚ROLLBACK 高分求救exp导出数据问题 win2003,9i,在空间USER上建了一个用户user1/pass1,在这个用户上建了一个表,我想备份?但出现问题? Oracle9i客户端能否安装在WindowsMe下???
的话如果select语句返回的结果集大于1就会报错,那实际上就只能一条一条的更新,就没有起到批量update的作用了!
不会达到你想想的要求。
你的这个方法我试过了,但有如下问题。
如果我的T1有两条记录,T2也有两天记录,然后T2的每一条记录对应T1的每一条记录,也就是说T2的每一条记录可以对应修改T1的一条记录,但如果用这种方法,因为T2的两条记录在T1中都有对应
所以不能区分出每一条的对应情况来,结果就是将T1的UPDATE字段,修改为T2中两条记录对应字段的总和,而这样是错误的。
rowid是唯一的。
最好在表中加入唯一性字段id之类的来标识
(select a.ssye + b.authorize_pay
from fund_apply_original_return b
where a.year = b.year and
a.unit_code = b.budget_unit and
a.subject_code = b.subject_code and
a.item_code = nvl(b.item_code,'0'))