Principales respuestas
Ayuda con procedure

Pregunta
-
Buenas tardes, tengo una tabla llamada Proveedor_Producto en la que puedo almacenar el precio actual de un producto. La idea es que al insertar un nuevo precio, el antiguo valor del campo PrecioActual debería pasarse al campo PrecioAnterior1. Y el antiguo valor de PrecioAnterior1 debería pasarse a PrecioAnterior2. Por ejemplo en el caso de la imagen, al yo agregar un nuevo precio actual = 8 en el producto 1 del proveedor 225, los campos deberían quedar: PrecioActual = 8, PrecioAnterior1 = 9, PrecioAnterior2 = 13.
Actualmente si los 3 campos de precio son NULL el procedure funciona correctamente. Lo mismo si el campo PrecioActual ya tiene un valor y los otros 2 son NULL. Pero cuando solo el campo PrecioAnterior2 es NULL, los campos no se modifican y se queda igual. ¿Alguien podría decirme en donde está mi error?
procedure:
Create procedure Actualiza_Precios_Proveedores
(
@PrecioNuevo money,
@PrecioActual money,
@PrecioAnterior1 money,
@IdProducto int,
@IdProveedor int
)
AS
BEGIN
BEGIN TRY
BEGIN TRANSACTION
Update Proveedor_Producto set PrecioAnterior2 = PrecioAnterior1
where PrecioAnterior1 = (Select PrecioAnterior1 from Proveedor_Producto where PrecioAnterior1 = @PrecioAnterior1)
and IdProducto = @IdProducto and IdProveedor = @IdProveedor
Update Proveedor_Producto set PrecioAnterior1 = PrecioActual
where PrecioActual = (Select PrecioActual from Proveedor_Producto where PrecioActual = @PrecioActual)
and IdProducto = @IdProducto and IdProveedor = @IdProveedor
Update Proveedor_Producto set PrecioActual = @PrecioNuevo where IdProducto = @IdProducto and IdProveedor = @IdProveedor
COMMIT TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
END CATCH
END- Editado Manuelrodgzz miércoles, 28 de agosto de 2019 22:35 Error de redacción
Respuestas
-
Deleted
- Marcado como respuesta Manuelrodgzz domingo, 1 de septiembre de 2019 13:46
Todas las respuestas
-
Deleted
- Marcado como respuesta Manuelrodgzz domingo, 1 de septiembre de 2019 13:46
-