我想计算表vcofig
中列vin_no
的记录数,并将表new_stock
中的最终计数放在列vehiclecount
上。
表vin_no
包含vcofig
列和chassis
列;
表new_stock
包含vcofig
列(主键)和vehiclecount
。
vcofig
中有new_stock
个vcofig
这16个人在vin_no
的{{1}}中有多个时间(共80个)。
以下是代码。但错误是
ORA-01427:单行子查询返回多行。
UPDATE NEW_STOCK set VEHICLECOUNT = (
select count(vin_NO.vcofig) total
from VIN_NO
LEFT join NEW_STOCK on VIN_NO.VCOFIG = NEW_STOCK.VCOFIG
GROUP BY vin_no.VCOFIG
) ;
答案 0 :(得分:0)
UPDATE NEW_STOCK a set VEHICLECOUNT =
(select count(*) from VIN_NO b where b.VCOFIG = a.VCOFIG)
如果VEHICLECOUNT不能为null,则:
UPDATE NEW_STOCK a set VEHICLECOUNT =
(select count(*) from VIN_NO b where b.VCOFIG = a.VCOFIG)
WHERE EXISTS
(select 'x' from VIN_NO c where c.VCOFIG = a.VCOFIG)
或者:
UPDATE NEW_STOCK a set VEHICLECOUNT =
nvl((select count(*) from VIN_NO b where b.VCOFIG = a.VCOFIG),0)