SQL - Ayuda necesito realizar este problema pero creo que es muy dificil

   
Vista:

Ayuda necesito realizar este problema pero creo que es muy dificil

Publicado por eudyth eudyth41@gmail.com (2 intervenciones) el 31/05/2017 02:49:18
Este es el problema les agradeceria que me ayudaran

Cree la Base de datos Banco. Agregue las tablas Cuenta y Movimiento
CREATE DATABASE BANCO

USE BANCO

CREATE TABLE CUENTA(
NUMERO CHAR (20) PRIMARY KEY,
[FECHA APER] DATETIME NOT NULL,
[MONTO APER] DECIMAL (12,2) NOT NULL,
SALDO DECIMAL (14,2))


CREATE TABLE MOVIMIENTO(
[NUMERO CTA] CHAR (20) REFERENCES CUENTA NOT NULL,
[NUMERO MOV] CHAR (7) NOT NULL,
FECHA DATETIME NOT NULL,
[TIPO MOV] CHAR (2) NOT NULL CHECK ([TIPO MOV] IN ('DE','NC','TR','RE','ND','TE')),
MONTO DECIMAL (12,2) NOT NULL,
CHECK ([NUMERO MOV] LIKE '0[1-9][0-9][0-9][0-9][0-9][0-9]' OR [NUMERO MOV] LIKE '1[012][0-9][0-9][0-9][0-9][0-9]'),
PRIMARY KEY ([NUMERO CTA],[NUMERO MOV])
)


Transcriba y ejecute el código para crear el procedimiento NumeroMovimiento el cual determina el número de movimiento del próximo movimiento a agregar de una cuenta
CREATE PROCEDURE NumeroMovimiento
@NUMCTA CHAR(20),
@NUMMOV CHAR(7) OUTPUT
AS
DECLARE @NUMBAS CHAR(4), @CNUM CHAR(3), @INUM INT ,@ULTNUMMOV CHAR(7)
DECLARE @IMES INT, @CMES CHAR(2), @IAÑO INT, @CAÑO CHAR(4)
SET @IMES = MONTH(GETDATE())
SET @IAÑO = YEAR (GETDATE())
SET @CAÑO = CONVERT (CHAR(4),@IAÑO)
IF @IMES < 10
SET @CMES = '0' + CONVERT (CHAR(1),@IMES)
ELSE
SET @CMES = CONVERT (CHAR(2),@IMES)
SET @NUMBAS = @CMES + SUBSTRING(@CAÑO,3,2)
IF EXISTS (SELECT * FROM MOVIMIENTO WHERE [NUMERO CTA] = @NUMCTA AND SUBSTRING([NUMERO MOV],1,4)= @NUMBAS)
BEGIN
SET @ULTNUMMOV = (SELECT TOP 1 [NUMERO MOV] FROM MOVIMIENTO WHERE [NUMERO CTA] = @NUMCTA AND SUBSTRING([NUMERO MOV],1,4)= @NUMBAS ORDER BY [NUMERO MOV] DESC)
SET @CNUM = SUBSTRING(@ULTNUMMOV,5,3)
SET @INUM = @CNUM + 1
IF @INUM < 10
SET @CNUM = '00'+CONVERT (CHAR(1),@INUM)
IF @INUM BETWEEN 10 AND 99
SET @CNUM = '0'+CONVERT (CHAR(2),@INUM)
IF @INUM >=100
SET @CNUM = CONVERT (CHAR(3),@INUM)
SET @NUMMOV = @NUMBAS + @CNUM
END
ELSE
BEGIN
SET @NUMMOV = @NUMBAS + '001'
END

Lo de abajo es lo que tengo que resolver




La fecha de apertura de una cuenta y la fecha de un movimiento es la fecha del sistema
1. Cree el trigger ActualizarSaldo en la tabla Movimiento el cual se ejecutará cuando se inserte un movimiento en dicha tabla.
Si una Cuenta tiene un solo movimiento registrado el trigger debe actualizar el saldo de la cuenta con el monto del movimiento
De lo contrario
Si el tipo de movimiento es DE, TR o NC el saldo de la cuenta aumenta en el monto del movimiento
De lo contrario el saldo de la cuenta disminuye en el monto del movimiento
2. Cree el trigger PrimerMovimiento en la tabla Cuenta que se dispare cuando se inserte una cuenta en dicha tabla. El trigger PrimerMovimiento inserta en la tabla Movimiento el movimiento número MMYY001 (MM mes actual, YY año actual) de la cuenta insertada, tipo DE (Depósito) cuyo monto es el monto de apertura.
3. Cree el procedimiento almacenado RegistrarMovimiento el cual recibe el numero de una cuenta, el tipo de movimiento ('DE','NC','TR','RE','ND','TE') y el monto
Si existe la cuenta
Ejecuta el procedimiento NumeroMovimiento
Busca el saldo de la cuenta
Si el tipo de movimiento es ('RE','TE') y el saldo de la cuenta es menor que el monto del movimiento, muestra el mensaje 'SALDO INSUFICIENTE'
De lo contrario inserta el movimiento en la tabla Movimiento
De lo contrario muestra el mensaje 'CUENTA NO REGISTRADA'
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

Ayuda necesito realizar este problema pero creo que es muy dificil

Publicado por Isaias (933 intervenciones) el 31/05/2017 17:11:05
¿Es una TAREA ESCOLAR?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda necesito realizar este problema pero creo que es muy dificil

Publicado por eudyth (2 intervenciones) el 31/05/2017 19:32:32
Es un trabajo de la universidad
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

Ayuda necesito realizar este problema pero creo que es muy dificil

Publicado por Isaias (933 intervenciones) el 31/05/2017 22:00:36
¿Que avance llevas?

Porque debes saber que por este foro, no hacemos tareas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar