--PREGUNTA 4--
CREATE PROCEDURE uspAbrir_Cuenta @COD_CLIENTE CHAR (5),@MONTO MONEY
AS
BEGIN
TRANSACTION
DECLARE @COD_CUENTA CHAR(5)
DECLARE @AUX INT
SELECT @COD_CUENTA=MAX(C_CUENTA) FROM CUENTA
IF @COD_CUENTA is NULL
BEGIN
SET @COD_CUENTA='C0001'
INSERT INTO CUENTA VALUES (@COD_CUENTA,@COD_CLIENTE,@MONTO)
INSERT INTO MOVIMIENTO VALUES (@COD_CUENTA,1,@MONTO)
end
else
BEGIN
SET @AUX= CONVERT (INT,RIGHT(@COD_CUENTA,4))+1
SET @COD_CUENTA = 'C' + RIGHT('0000'+CONVERT (VARCHAR,@AUX),4)
INSERT INTO CUENTA VALUES (@COD_CUENTA,@COD_CLIENTE,@MONTO)
INSERT INTO MOVIMIENTO VALUES (@COD_CUENTA,1,@MONTO)
end
COMMIT
exec uspAbrir_Cuenta 'C0010',200.00
exec uspAbrir_cuenta 'C0011',100.00
DROP PROCEDURE uspAbrir_Cuenta
SELECT *FROM CUENTA
select *from cliente
SELECT *FROM MOVIMIENTO
--PREGUNTA 5----
---PREGUNTA 5-------
CREATE PROCEDURE RETIRA_MONTO @CUENTA CHAR(5), @MONTO MONEY
AS
BEGIN
TRANSACTION
DECLARE @DINERO MONEY
SELECT @DINERO = C.S_SALDO
FROM CUENTA C
WHERE C.C_CUENTA = @CUENTA
BEGIN
DECLARE @NRO_MOV VARCHAR(1)
SELECT @NRO_MOV = MAX (C_MOV)+1
FROM MOVIMIENTO
WHERE C_CUENTA = @CUENTA
INSERT INTO MOVIMIENTO VALUES (@CUENTA,@NRO_MOV,@MONTO)
UPDATE CUENTA
SET S_SALDO = S_SALDO -@MONTO
WHERE C_CUENTA =@CUENTA
END
COMMIT
SELECT * FROM CUENTA
EXEC RETIRA_MONTO 'C0001', 50.0
SELECT * FROM CUENTA
--PREGUNTA 6--
CREATE PROCEDURE TRANSFERIR_MONTO @CUENTA_1 VARCHAR(5), @CUENTA_2 VARCHAR (5), @MONTO MONEY
AS
BEGIN TRANSACTION
DECLARE @SALDO MONEY
SELECT @SALDO = C.S_SALDO
FROM CUENTA C
WHERE C.C_CUENTA = @CUENTA_1
BEGIN
DECLARE @NRO_MOV int
SELECT @NRO_MOV = MAX (C_MOV)+1
FROM MOVIMIENTO
WHERE C_CUENTA = @CUENTA_1
INSERT INTO MOVIMIENTO VALUES(@CUENTA_1,@NRO_MOV,@MONTO)
UPDATE CUENTA
SET S_SALDO = S_SALDO + @MONTO
WHERE C_CUENTA = @CUENTA_2
UPDATE CUENTA
SET S_SALDO = S_SALDO - @MONTO
WHERE C_CUENTA = @CUENTA_1
COMMIT
END
SELECT * FROM CUENTA
SELECT * FROM MOVIMIENTO
EXEC TRANSFERIR_MONTO 'C0010','C0011',100.00
SELECT * FROM CUENTA
SELECT * FROM MOVIMIENTO
DROP PROCEDURE TRANSFERIR_MONTO
No hay comentarios:
Publicar un comentario