ARAPClearItems这个分录表里,在RPBillID='00000000000000005191'的条件下CustomField6一共有13行需要批量更新,select里的语句查出来确实也是13行,但是为什么还是提示单行子查询返回多个行,求大神指点。
update ARAPClearItems set CustomField6 = (select (a.TransAuditValue/b.TaxInValue)*(nvl(a.CustomField5,0))
from ARAPClearItems a ,SalesInvoiceItems b
where a.ARAPbillID=b.SalesInvoiceid
and a.billitemid=b.SalesInvoiceItemid
and a.invsign='1'
and a.ARAPsourcetypecode='0003'
and b.TaxInValue<>0
and a.TransAuditValue<>0)
where RPBillID='00000000000000005191'
解决方案 »
- 导入数据库时指定表空间的遇到的问题
- oracle触发器中NEW_VALUE和OLD_VALUE的问题。。谢谢大家了
- 如何解决if var in (select ...)的转换问题?
- ORACLE10G exp导出时报错,无法正常导出数据,请大家帮忙啊,急!
- 请教一ORACLE错误:ORA-00911 如何解决?很急,在线等待解答
- 大家帮忙看看这段SQL吧,有些地方不明白
- 一个常见的select语句,后面加:1=1
- 在Linux9下总算把Oracle9i软件给装好了,又出现创建数据库问题(不要小瞧噢)?
- Oracle在2000 Server 下和linux下有什么区别?
- 我在Debian 3.0_R1下安装了 Oracle 9.2.0, 无法运行图形管理界面。
- 求一sql
- 请教大神一个关于锁的问题
update ARAPClearItems c set CustomField6 = (select (a.TransAuditValue/b.TaxInValue)*(nvl(a.CustomField5,0))
from ARAPClearItems a ,SalesInvoiceItems b
where a.ARAPbillID=b.SalesInvoiceid
and a.billitemid=b.SalesInvoiceItemid
and a.RPBillID = c.RPBillID
and a.invsign='1'
and a.ARAPsourcetypecode='0003'
and b.TaxInValue<>0
and a.TransAuditValue<>0)
where RPBillID='00000000000000005191'
-- ARAPClearItems 写一次就可了,你重复了。
update ARAPClearItems a set CustomField6 = (select (a.TransAuditValue/b.TaxInValue)*(nvl(a.CustomField5,0))
from SalesInvoiceItems b
where a.ARAPbillID=b.SalesInvoiceid
and a.billitemid=b.SalesInvoiceItemid
and a.invsign='1'
and a.ARAPsourcetypecode='0003'
and b.TaxInValue<>0
and a.TransAuditValue<>0)
where RPBillID='00000000000000005191'
and exists() -- 这里最好再写一个遍刚才的子查询。