Anda di halaman 1dari 10

1.

PROCEDIMIENTO ALMACENADO

--Mostrar el Nombre completo de los Clientes, el Tipo de Alquiler, Nº unidades e Importe por cada
-- equipo alquilado; siempre que el importe sea mayor a 550.00 y el Id del Contratista se defina como
-- parámetro.

use FULLCOMPUTER
go
if OBJECT_ID('dbo.SP_CLIENTES_Y_ALQUILER') is not null
begin
use FULLCOMPUTER
drop procedure dbo.SP_CLIENTES_Y_ALQUILER
end
go
create procedure dbo.SP_CLIENTES_Y_ALQUILER
@IdContratista int
AS
Begin
select distinct C.NOMBRES+' '+C.PATERNO+' '+C.MATERNO as Cliente,
CA.TIPO_ALQ as 'Tipo de Alquiler',
DCA.UNIDADES as 'Nº Unidades',
sum(E.PRECIODIA*DCA.DIAS) as Importe
from CLIENTE C
inner join CONTRATOALQUILER CA
on C.IDCLIENTE=CA.IDCLIENTE
inner join DETALLE_CONTRATO_ALQUILER DCA
on CA.CODCONTRATO=DCA.CODCONTRATO
inner join EQUIPO E
on DCA.CODEQUIPO=E.CODEQUIPO
where CA.IDCONTRATISTA=@IdContratista
group by C.NOMBRES, C.PATERNO, C.MATERNO, CA.TIPO_ALQ, DCA.UNIDADES
having sum(E.PRECIODIA*DCA.DIAS)>550
End
go

--Ejecución del SP
execute SP_CLIENTES_Y_ALQUILER 1
go
2. PROCEDIMIENTO ALMACENADO

--Mostrar la descripción del equipo y el total de días contratados de un equipo cuyo tipo de descripción
--ingresa como parámetro, y es el que contiene una 'R' en su descripción.
use FULLCOMPUTER
go
if OBJECT_ID('dbo.SP_EQUIPO_DESCRIPCION') is not null
begin
use FULLCOMPUTER
drop procedure dbo.SP_EQUIPO_DESCRIPCION
end
go
create procedure SP_EQUIPO_DESCRIPCION
@TipoDescripcion varchar(50)
AS
begin
select E.DESCRIPCION as Descripción,
sum(DCA.DIAS) as 'Total de días'
from EQUIPO E
inner join TIPOEQUIPO TE
on E.COD_TIPO_EQUIPO=TE.COD_TIPO_EQUIPO
inner join DETALLE_CONTRATO_ALQUILER DCA
on E.CODEQUIPO=DCA.CODEQUIPO
where TE.DESCRIPCION LIKE ('%R%')
group by E.DESCRIPCION
end
go
--Ejecución del SP
execute SP_EQUIPO_DESCRIPCION 'IMPRESORAS'
3. PROCEDIMIENTO ALMACENADO

--Procedimiento almacenado que muestra el IdContratista, la Fecha de inicio y de término; así como el
--resumen de pagos por los días de contratos de un cliente especificado con su nombre completo,
--dado como parámetro.
use FULLCOMPUTER
go
IF object_id('dbo.SP_RESUMEN_PAGOS_ALQUILERES') IS NOT NULL
begin
use FULLCOMPUTER
DROP PROCEDURE dbo.SP_RESUMEN_PAGOS_ALQUILERES
end
GO
CREATE PROCEDURE SP_RESUMEN_PAGOS_ALQUILERES
@CLIENTE VARCHAR(60)
AS
BEGIN
select DISTINCT CA.IDCONTRATISTA as IdContratista,
CA.FINICIO AS INICIO,
CA.FFIN AS FIN,
sum(E.PRECIODIA*DCA.DIAS) as Importe
from CONTRATOALQUILER CA
inner join DETALLE_CONTRATO_ALQUILER DCA
on CA.CODCONTRATO=DCA.CODCONTRATO
inner join CLIENTE C
on CA.IDCLIENTE=C.IDCLIENTE
inner join equipo E
on DCA.CODEQUIPO=E.CODEQUIPO
where C.NOMBRES+' '+C.PATERNO+' '+c.MATERNO=@CLIENTE
group by ca.IDCONTRATISTA, ca.FINICIO, ca.FFIN
END
go
--EJECUCIÓN DEL PROCEDIMIENTO ALMACENADO
EXECUTE SP_RESUMEN_PAGOS_ALQUILERES 'LUIS ORBEGOSO CASANOVA'
4. PROCEDIMIENTO ALMACENADO
--Ingresar el Número de DNI del cliente y el número de unidades alquiladas como parámetros y Mostrar
--el nombre completo del cliente, y todos sus contratos y detalles; siempre que el número de unidades
--sea mayor que el valor de unidades dadas como parámetro.
use FULLCOMPUTER
go
if OBJECT_ID('dbo.SP_CLIENTES_CONTRATOS') is not null
begin
use FULLCOMPUTER
drop procedure dbo.SP_CLIENTES_CONTRATOS
end
go
create procedure dbo.SP_CLIENTES_CONTRATOS
@DNI varchar(08),
@Unidades int
AS
Begin
select distinct C.NOMBRES+' '+C.PATERNO+' '+C.MATERNO as Cliente,
CA.IDCONTRATISTA as Contratista,
CA.FINICIO as 'Fecha de Inicio',
CA.FFIN as 'Fecha de Término',
DCA.UNIDADES as Unidades,
DCA.DIAS as Dias
from CLIENTE C
inner join CONTRATOALQUILER CA
on C.IDCLIENTE=CA.IDCLIENTE
inner join DETALLE_CONTRATO_ALQUILER DCA
on CA.CODCONTRATO=DCA.CODCONTRATO
where C.DNI=@DNI
group by C.NOMBRES, C.PATERNO, C.MATERNO, CA.IDCONTRATISTA, CA.FINICIO, CA.FFIN,
DCA.UNIDADES, DCA.DIAS
having DCA.UNIDADES>@Unidades
End
go

exec dbo.SP_CLIENTES_CONTRATOS '18025587', 2


5. PROCEDIMIENTO ALMACENADO

--Ingresar el Nombre completo del cliente como parámetro y obtener el código y descripción de los
--equipos que alquilaron cuyo tipo de equipo no contenga una 'U' en su descripción.
use FULLCOMPUTER
go
if OBJECT_ID('dbo.SP_CLIENTES_TIPOALQUILER') is not null
begin
use FULLCOMPUTER
drop procedure dbo.SP_CLIENTES_TIPOALQUILER
end
go
create procedure dbo.SP_CLIENTES_TIPOALQUILER
@Cliente varchar(150)
AS
Begin
select E.CODEQUIPO as Equipo,
E.DESCRIPCION as 'Descripción del Equipo'
from EQUIPO E
inner join TIPOEQUIPO TE
on E.COD_TIPO_EQUIPO=TE.COD_TIPO_EQUIPO
inner join DETALLE_CONTRATO_ALQUILER DCA
on E.CODEQUIPO=DCA.CODEQUIPO
inner join CONTRATOALQUILER CA
on CA.CODCONTRATO=DCA.CODCONTRATO
inner join CLIENTE C
on CA.IDCLIENTE=C.IDCLIENTE
where TE.DESCRIPCION not like '%U%'
and @Cliente= C.NOMBRES+' '+ C.PATERNO+' '+ C.MATERNO
End
go

--Ejecución del SP
execute dbo.SP_CLIENTES_TIPOALQUILER 'JUAN CASTILLO MEDINA'
6. PROCEDIMIENTO ALMACENADO
--Crear el procedimiento almacenado que permita mostrar una consulta de los contratos, el Apellido
--Paterno del cliente y el número de días de alquiler; obtenidos de una sub consulta de los contratos, el
--Id del cliente, el Apellido Paterno del cliente y el número de días de alquiler.
--El número de días de la consulta deberá ingresar como parámetro y será menor al número de días
--procesados.
use FULLCOMPUTER
go
if OBJECT_ID('dbo.SP_CLIENTES_DIAS_ALQUILER') is not null
begin
use FULLCOMPUTER
drop procedure dbo.SP_CLIENTES_DIAS_ALQUILER
end
go
create procedure dbo.SP_CLIENTES_DIAS_ALQUILER
@Dias int
AS
Begin
select Contrato as 'N° Contrato',
ApePaterno as Apellido,
NroDias
from
(select CA.CODCONTRATO as Contrato,
CA.IDCLIENTE as Cliente,
C.PATERNO as ApePaterno,
sum(DCA.DIAS) as NroDias
from CONTRATOALQUILER CA
inner join DETALLE_CONTRATO_ALQUILER DCA
on CA.CODCONTRATO=DCA.CODCONTRATO
inner join CLIENTE C
on CA.idcliente=C.idCliente
group by CA.CODCONTRATO, CA.IDCLIENTE, C.PATERNO
) as T
where len(T.ApePaterno)>=5
and @Dias<T.NroDias
end
go

execute dbo.SP_CLIENTES_DIAS_ALQUILER 5
7. PROCEDIMIENTO ALMACENADO

--Ingresar como parámetro la fecha de Inicio de los contratos; luego muestre el detalle de cada contrato
--que fueron procesados en los meses posteriores, del mismo año. Muestre sus resultados con las fechas
--en formato día, mes (con las tres primeras letras) y año; y en forma ordenada por fechas.
use FULLCOMPUTER
go
if OBJECT_ID('dbo.SP_CONTRATOS_FECHAS') is not null
begin
use FULLCOMPUTER
drop procedure dbo.SP_CONTRATOS_FECHAS
end
go
create procedure dbo.SP_CONTRATOS_FECHAS
@FechaInicio date
AS
Begin
select CA.CODCONTRATO as 'Código de Contrato',
CA.IDCLIENTE as Cliente,
CA.IDCONTRATISTA as IdContratista,
cast(day(CA.FINICIO) as char(02))+'/'+
case cast(month(CA.FINICIO) as char(02))
when '1' then 'Ene'
when '2' then 'Feb'
when '3' then 'Mar'
when '4' then 'Abr'
when '5' then 'May'
when '6' then 'Jun'
when '7' then 'Jul'
when '8' then 'Ago'
when '9' then 'Set'
when '10' then 'Oct'
when '11' then 'Nov'
when '12' then 'Dic'
end +'/'+
cast(year(CA.FINICIO) as char(04))
as 'Fecha de Inicio'
from CONTRATOALQUILER CA
where month(CA.FINICIO)>month(@FechaInicio)
and year(CA.FINICIO)=year(@FechaInicio)
order by CA.FINICIO
End
go

--Ejecución del SP
execute dbo.SP_CONTRATOS_FECHAS '2017-04-16'
8. PROCEDIMIENTO ALMACENADO
--Mostrar Código del contrato, el Nombre de los equipos y el importe calculado
--cuyos contratos vencieron en el mes y año indicados como parámetros.
--Mostrar los resultados ordenados por Código de Contrato.
use FULLCOMPUTER
go
if OBJECT_ID('dbo.SP_CONTRATOS_MESES_AÑOS') is not null
begin
use FULLCOMPUTER
drop procedure dbo.SP_CONTRATOS_MESES_AÑOS
end
go
create procedure dbo.SP_CONTRATOS_MESES_AÑOS
@Mes int,
@Año int
AS
Begin
select CA.CODCONTRATO as 'Código de Contrato',
E.DESCRIPCION as Equipo,
sum(DCA.DIAS*E.PRECIODIA) as Importe
from CONTRATOALQUILER CA
inner join DETALLE_CONTRATO_ALQUILER DCA
on CA.CODCONTRATO=DCA.CODCONTRATO
inner join EQUIPO E
on DCA.CODEQUIPO=E.CODEQUIPO
where month(CA.FFIN)=@Mes
and year(CA.FFIN)=@Año
group by CA.CODCONTRATO, E.DESCRIPCION
order by 1
End
go

--Ejecución del SP
execute dbo.SP_CONTRATOS_MESES_AÑOS 6, 2017
9. PROCEDIMIENTO ALMACENADO
--Ingresar como parámetro la descripción del tipo de equipo y mostrar
--la relación de los equipos cuyo PrecioDia es Mayor que 50.00
use FULLCOMPUTER
go
if OBJECT_ID('dbo.SP_EQUIPOS_TIPOS') is not null
begin
use FULLCOMPUTER
drop procedure dbo.SP_EQUIPOS_TIPOS
end
go
create procedure dbo.SP_EQUIPOS_TIPOS
@TipoDescripcion varchar(50)
AS
Begin
select E.CODEQUIPO as 'Código de Equipo',
E.DESCRIPCION as Descripcion,
E.PRECIODIA as 'Precio por Día'
from EQUIPO E
inner join TIPOEQUIPO TE
on E.COD_TIPO_EQUIPO=TE.COD_TIPO_EQUIPO
where E.PRECIODIA>50.00
and TE.DESCRIPCION=@TipoDescripcion
End
go

--ejecución del SP
execute dbo.SP_EQUIPOS_TIPOS 'LAPTOS'
10. PROCEDIMIENTO ALMACENADO

--Ingresar como parámetro el DNI del cliente y el Tipo de Equipo; luego


--mostrar el nombre de los Tipo de equipos que no alquiló, en el año 2017.
use FULLCOMPUTER
go
if OBJECT_ID('dbo.SP_TIPOEQUIPOS_NO_ALQUILADOS') is not null
begin
use FULLCOMPUTER
drop procedure dbo.SP_TIPOEQUIPOS_NO_ALQUILADOS
end
go
create procedure dbo.SP_TIPOEQUIPOS_NO_ALQUILADOS
@DNI varchar(08),
@TipoEquipo int
AS
Begin
select E.DESCRIPCION as 'Equipos no alquilados'
from EQUIPO E
inner join TIPOEQUIPO TE
on E.COD_TIPO_EQUIPO=TE.COD_TIPO_EQUIPO
inner join DETALLE_CONTRATO_ALQUILER DCA
on E.CODEQUIPO=DCA.CODEQUIPO
inner join CONTRATOALQUILER CA
on CA.CODCONTRATO=DCA.CODCONTRATO
inner join CLIENTE C
on CA.IDCLIENTE=C.IDCLIENTE
where TE.COD_TIPO_EQUIPO not like @TipoEquipo
and C.DNI=@DNI
and year(CA.FINICIO)='2017'
End
go

--Ejecución del SP
execute dbo.SP_TIPOEQUIPOS_NO_ALQUILADOS '18025587', 1

Anda mungkin juga menyukai