如何计算多个记录并将计数no放在新表

时间:2017-11-22 18:59:30

标签: sql oracle count

我想计算表vcofig中列vin_no的记录数,并将表new_stock中的最终计数放在列vehiclecount上。

vin_no包含vcofig列和chassis列; 表new_stock包含vcofig列(主键)和vehiclecount

vcofig中有new_stockvcofig这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
) ;

1 个答案:

答案 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)