Insert en tabla primaria e insert/update en otra
Publicado por Lilia (7 intervenciones) el 13/08/2007 19:54:03
Hola !! Espero tengan un excelente día!!
Esta vez vengo a hacerles una consulta de como podria darle solución a lo siguiente:
Pasa que tengo dos tablas: Dentrada, Detsalida y.... Existencias
Por lo que en entradas tengo dos campos:
* Detentrada:
i_nro_producto (la clave del producto)
i_nro_departamento (donde esta almacenado el producto)
f_cantidad (cantidad que entra de se producto)
* Detsalida:
i_nro_producto (la clave del producto)
i_nro_departamento (donde esta almacenado el producto)
f_cantidad (cantidad que entra de ese producto)
* Existencias: (donde se llevaria el control de la existencia de producto por departamento)
i_nro_producto (la clave del producto)
i_nro_departamento (donde esta almacenado el producto)
f_cant_entrada (cantidad que entra de ese producto)
f_cant_salida (cantidad que sale de ese producto)
Para asi crear un campo donde reste f_cant_entrada- f_cant_salida y obtener las existencias...
El problema viene cuando hago las Entradas; pues como puedo insertar en la tabla el i_nro_producto y el i_nro_departamento...
Porque lo tengo que me las inserte pero al volver hacer una entrada a algún departamento con el mismo producto me lo crea de nuevo y lo ke quiero es que me lo vaya acumulando en el registro que le corresponde..
Tengo lo siguiente:
Insert Into DETENTRADA(i_nro_entrada,i_nro_producto,f_cantidad,i_nro_departamento)
Values(@i_nro_entrada,@i_nro_producto,@i_nro_departamento)
Insert into EXISTENCIAS (i_nro_producto, i_nro_departamento) values (@i_nro_producto,@i_nro_departamento) /*Que pues si funciona si es la primera vez..
pero cuando son las siguientes!!?? lo inserta de nuevo claro!!*/
Y aqui cuando ya existe que permite actualizar, pero igual, que pasa sino existe???:
Declare @SumaE AS Float
Select @SumaE= Sum(f_cantidad)
From DETENTRADA Where i_nro_departamento = i_nro_departamento and i_nro_producto=i_nro_producto
Update EXISTENCIAS Set f_cant_entrada=@f_cantidad + IsNull(T0.f_cant_entrada,0) FROM EXISTENCIAS T0 Where i_nro_departamento=@i_nro_departamento and i_nro_producto=@i_nro_producto
Espero y me haya explicado..
De antemano muchas gracias!!!
La idea es llevar un control de existencias de cada producto por departamento..
Toda sugerencia y propuesta es muy bien recibida!!
Que tengan un excelente día!!!. . . .
Besos!!!
Esta vez vengo a hacerles una consulta de como podria darle solución a lo siguiente:
Pasa que tengo dos tablas: Dentrada, Detsalida y.... Existencias
Por lo que en entradas tengo dos campos:
* Detentrada:
i_nro_producto (la clave del producto)
i_nro_departamento (donde esta almacenado el producto)
f_cantidad (cantidad que entra de se producto)
* Detsalida:
i_nro_producto (la clave del producto)
i_nro_departamento (donde esta almacenado el producto)
f_cantidad (cantidad que entra de ese producto)
* Existencias: (donde se llevaria el control de la existencia de producto por departamento)
i_nro_producto (la clave del producto)
i_nro_departamento (donde esta almacenado el producto)
f_cant_entrada (cantidad que entra de ese producto)
f_cant_salida (cantidad que sale de ese producto)
Para asi crear un campo donde reste f_cant_entrada- f_cant_salida y obtener las existencias...
El problema viene cuando hago las Entradas; pues como puedo insertar en la tabla el i_nro_producto y el i_nro_departamento...
Porque lo tengo que me las inserte pero al volver hacer una entrada a algún departamento con el mismo producto me lo crea de nuevo y lo ke quiero es que me lo vaya acumulando en el registro que le corresponde..
Tengo lo siguiente:
Insert Into DETENTRADA(i_nro_entrada,i_nro_producto,f_cantidad,i_nro_departamento)
Values(@i_nro_entrada,@i_nro_producto,@i_nro_departamento)
Insert into EXISTENCIAS (i_nro_producto, i_nro_departamento) values (@i_nro_producto,@i_nro_departamento) /*Que pues si funciona si es la primera vez..
pero cuando son las siguientes!!?? lo inserta de nuevo claro!!*/
Y aqui cuando ya existe que permite actualizar, pero igual, que pasa sino existe???:
Declare @SumaE AS Float
Select @SumaE= Sum(f_cantidad)
From DETENTRADA Where i_nro_departamento = i_nro_departamento and i_nro_producto=i_nro_producto
Update EXISTENCIAS Set f_cant_entrada=@f_cantidad + IsNull(T0.f_cant_entrada,0) FROM EXISTENCIAS T0 Where i_nro_departamento=@i_nro_departamento and i_nro_producto=@i_nro_producto
Espero y me haya explicado..
De antemano muchas gracias!!!
La idea es llevar un control de existencias de cada producto por departamento..
Toda sugerencia y propuesta es muy bien recibida!!
Que tengan un excelente día!!!. . . .
Besos!!!
Valora esta pregunta


0