Vous êtes sur la page 1sur 4

Ejercicios Resueltos (SQL SERVER)

PARTE 1 : Consultas

------------------------------------------------------------------
-------

CREATE DATABASEBANCO

GO

USEBANCO

GO

CREATE TABLECLIENTE

(IDCLIENTEVARCHAR(5)PRIMARY KEY,

APELLIDOSVARCHAR(30),

NOMBRESVARCHAR(30))

GO

CREATE TABLECUENTA

(IDCLIENTEVARCHAR(5),

IDCUENTAVARCHAR(5)PRIMARY KEY,

SALDOFLOAT,

DIVISAVARCHAR(20))

GO

CREATE TABLEMOVIMIENTO

(IDCUENTAVARCHAR(5),

IDMOVIMIENTOVARCHAR(5)PRIMARY KEY,

TIPOVARCHAR(2),

MONTOFLOAT,

FECHADATETIME)

GO
ALTER TABLECUENTA

ADD FOREIGN KEY(IDCLIENTE)REFERENCESCLIENTE

GO

ALTER TABLEMOVIMIENTO

ADD FOREIGN KEY(IDCUENTA)REFERENCESCUENTA

GO

--Segn el Modelo Realice las Siguientes Preguntas

--1A --Consultar las Cuentas de los clientes cuyo Apellido empiece


por A

SELECTB.APELLIDOS+','+B.NOMBRESASCLIENTE,A.IDCUENTA,A.SALDO

FROMCUENTA AINNER JOINCLIENTE B

ONA.IDCLIENTE=B.IDCLIENTE

WHEREB.APELLIDOSLIKE'A%'

--1B

Consultar todo los Movimientos de las Cuentas en Divisa EURO


delCliente cuyos Apellidos es PEREZ

SELECTA.IDCUENTA,C.FECHA,C.MONTO,TIPO=CASEC.TIPOWHEN'D'THEN'DEPOSI
TO'WHEN'R'THEN'RETIRO'WHEN'T'THEN'TRANSFERENCIA'END

FROMCUENTA AINNER JOINCLIENTE BONA.IDCLIENTE=B.IDCLIENTE

INNER JOINMOVIMIENTO CONA.IDCUENTA=C.IDCUENTA

WHEREA.DIVISA='EUROS'ANDB.APELLIDOS='PEREZ'

ORDER BYC.FECHADESC

--1C

Consultar todo los movimientos de las Cuentas del Cliente PEREZ


enEUROS (Aunque tenga cuentas en otras divisas) Ordenados por el
numero deCuenta
SELECTC.NOMBRES,C.APELLIDOS,CU.IDCUENTA,CU.SALDO,CU.DIVISA,M.IDMOV
IMIENTO,M.MONTO,M.TIPO

FROMCLIENTE CINNER JOINCUENTA CU

ONC.IDCLIENTE=CU.IDCLIENTE

INNER JOINMOVIMIENTO M

ONCU.IDCUENTA=M.IDCUENTA

WHEREC.APELLIDOS='PEREZ'

ORDER BYCU.IDCUENTA

--1D

Consultar las Divisas que no tengan ninguna Cuenta Asociada

SELECTB.IDCLIENTE,B.APELLIDOS,B.NOMBRES,A.IDCUENTA,A.DIVISA

FROMCUENTA AINNER JOINCLIENTE BONA.IDCLIENTE=B.IDCLIENTE

INNER JOINMOVIMIENTO CONA.IDCUENTA=A.IDCUENTA

WHEREA.DIVISA='SIN CUENTA'

--1E

Consultar los Movimientos de Ingreso de PEREZ y los Movimientos


deTraspaso de RODRIGUEZ

SELECTA.IDCUENTA,C.FECHA,C.MONTO,C.TIPO

FROMCUENTA AINNER JOINCLIENTE BONA.IDCLIENTE=B.IDCLIENTE

INNER JOINMOVIMIENTO CONA.IDCUENTA=A.IDCUENTA

WHEREC.TIPO='DEPOSITO'ANDB.APELLIDOS='PEREZ'OR

C.TIPO='TRANSACCIONES'ANDB.APELLIDOS='RODRIGUEZ'

ORDER BYC.FECHADESC

--1F

CREAR UNA FUNCION QUE RETORNE SI UN CLIENTE ES MOROSO

CREATE FUNCTIONMOROSO(@FECHAPAGODATETIME)

RETURNS VARCHAR(20)
AS

BEGIN

DECLARE@FECHACLIENTEDATETIME

DECLARE@MENSAJEVARCHAR(20)

SELECT@FECHACLIENTE=FECHAFROMMOVIMIENTOWHERETIPO='DEPOSITO'

IFMONTH(@FECHACLIENTE) <MONTH(@FECHAPAGO)

SET@MENSAJE='EL CLIENTE ES MOROSO'

RETURN@MENSAJE

END

--DEMO

SELECTdbo.MOROSO('15/02/2011')

Vous aimerez peut-être aussi