Stock total de productos difiere en inventario de almacenes

Cuando esto ocurre podemos usar el siguiente script:

use Gestion
	
	UPDATE invItem 
	SET cantidadStock= 
	(select case 
	when  SUM(invStockAlmacen.cantidadStock)  is not null then SUM(invStockAlmacen.cantidadStock)
		else 0
	 
  end 
  from invStockAlmacen where
	invItem.id = invStockAlmacen.idItem)
	where invItem.id in (
	select invItem.id
from invItem join invStockAlmacen on (invItem.id = invStockAlmacen.idItem)
group by invItem.id, invItem.cantidadStock
having SUM(invStockAlmacen.cantidadStock) <> invItem.cantidadStock)