sábado, 26 de noviembre de 2011

TA-Ahorros

--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