Hola,
Tengo las siguientes tablas.
Inv_Item
iItemId int, nCosto Numerico, cDescripcion Caracter
Inv_ItemStock
iItemStockId I, iIdBodega, iIdItem I, nCantidad Numerico
cuando hago un ingreso necesito hacer un recosteo, el problema se da
por que el costo es unico por Item y la cantidad esta dividada en los
diferentes bodegas en la tabla Inv_itemStock.
al momento se me ocurre hacer el siguiente Update por linea ingresada
en el movimiento:
Update Inv_Item Set nCosto = (ROUND(nCosto * (Select Sum(nCantidad)
From Inv_ItemStock Where Inv_ItemStock.iIdItem = 20211), 2) + Costo
total por linea) / ((Select Sum(nCantidad) From Inv_ItemStock Where
Inv_ItemStock.iIdItem = 20211) + Cantidad por linea)Where
Inv_Item.iItemId = 20211
Esto lo ejecuto mediante ado desde el cliente.
Otra solucion seria crear un descadenate para Inv_itemStock.nCantidad
para que cada vez que se actualice (sume o reste segun el caso) se
actualiza el campo Inv_item.nCantidad.
Me parace mas optimo este opcion ya que el update seria asi:
Update Inv_Item Set nCosto = (ROUND(nCosto * nCantidad), 2) + Costo
total por linea) / (nCantidad + Cantidad por linea) Where
Inv_Item.iItemId = 20211
La idea esta dada, pero mis conocimientos son escaso con Sql Server no
se como implementarla, espero que me puedan ayudar con la solucion mas
optima a este problema.
Sql Server 2000, Ado 2.8 + VFP 8.0
Saludos,
Mauricio Pulla.
Cuenca Ecuador
Leer las respuestas