Está en la página 1de 5

PROCEDIMIENTOS ALMACENADOS, FUNCIONES

EN SQLServer

1. Obtener la lista de los participantes árbitros de género femenino


Código:
create procedure jugador_Arbitro
as
PRINT 'Lista de los participantes arbitros de genero Femenino';
select p.nomb,p.appat,p.apmat,p.ci,p.genero
from participantes as p inner join arbitros as a
on p.cod_partici = a.cod_partici
where p.genero = 'F'
go
exec jugador_Arbitro

2. Crear un procedimiento para listar los participantes jugadores que proceden de un determinado
país (es parámetro el nombre del pais)
código:
create procedure jug_proceden_pais
@vpais_proced varchar(20)
as
print 'Participantes jugadores que proceden de un pais'
select p.nomb,p.appat,p.apmat,p.telef,j.nivel,ps.nomb_pais
from participantes as p inner join
(jugadores as j inner join
(pais_envia_partici as cep inner join pais as ps
on ps.id_pais =cep.id_pais)
on j.cod_partici = cep.cod_partici)
on p.cod_partici = j.cod_partici
where ps.nomb_pais=@vpais_proced
go

exec jug_proceden_pais 'Bolivia'


3. Crear un procedimiento almacenado para obtener los árbitros que se hospedaron en alguno de
dos hoteles, donde son parámetros los dos nombres de hoteles.
Código:
create procedure arbi_hospeda_2hotel
@vnomb_hotel varchar(50),
@vnomb_hotel2 varchar(50)
as
print 'Participantes arbitros que se hospedaron en alguno de los hoteles'
select p.nomb,p.appat,p.apmat,p.telef,h.nomb_hotel,h.telef
from participantes as p inner join
(arbitros as a inner join
(hotel_aloja_parti as hap inner join hotel as h
on h.cod_hotel = hap.cod_hotel)
on a.cod_partici = hap.cod_partici)
on p.cod_partici = a.cod_partici
where h.nomb_hotel=@vnomb_hotel or h.nomb_hotel=@vnomb_hotel2
go

exec arbi_hospeda_2hotel 'ESTRELLA','ROSALES'


4. Crear un procedimiento para obtener la fecha máxima de nacimiento de los jugadores de un
determinado género.
Código:
create procedure fecha_antigua
@vgenero VARCHAR(2),
@vfechanac DATETIME OUTPUT
AS
SELECT @vfechanac=(SELECT MAX(fecha_nac)
FROM participantes as p inner join jugadores as j
on p.cod_partici=j.cod_partici
WHERE p.genero =@vgenero)
go
DECLARE @vfechanac DATETIME
EXEC fecha_antigua 'M',@vfechanac OUTPUT
PRINT @vfechanac
Ejercicios de procedimientos almacenados en SQLServer.

Se pide escribir los siguientes procedimientos almacenados:


1. Crear un procedimiento almacenado para obtener la lista de los árbitros (código, paterno, materno,
nombre, dpto. nacimiento y genero), donde el estado civil y el género sea igual a un
parámetro de entrada.
Código:
create procedure lista_de_arbitros
@est_civil varchar (20),
@genero varchar(10)
as
print'lista de los árbitros'
select participantes.cod_partici, participantes.appat, participantes.apmat,
participantes.nomb,
participantes.dpto_nac, participantes.fecha_nac, participantes.genero,
participantes.est_civil
from participantes inner join arbitros
on participantes.cod_partici=arbitros.cod_partici
where participantes.est_civil=@est_civil or participantes.genero=@genero
go
exec lista_de_arbitros 'C','F’

2. Crear un procedimiento almacenado para obtener la cantidad de partidas realizadas en los


campeonatos organizados en un determinado año. Es parámetro de entrada el año y es parámetro de
salida la cantidad de partidas.
Código:
create procedure cant_partidas
@año date,
@cant int output
as
select @cant=( select Nro_jugada
from partidas inner join movimientos
on movimientos.cod_partida= partidas.cod_partida
where partidas.fecha=@año)
go
declare @cant int
exec cant_partidas'2012-01-17',@cant output
print @cant

3. Crear un procedimiento almacenado para listar los jugadores de un determinado género que no
participaron en el campeonato organizado entre dos años. Es parámetro de entrada el género, y, los
dos años.
Código:
create procedure jug_no_participaron
@vgenero varchar(2),
@fecha1 int,
@fecha2 int
as
select participantes.cod_partici, participantes.appat, participantes.apmat,
participantes.nomb,
participantes.genero
from participantes inner join jugadores
on participantes.cod_partici=jugadores.cod_partici
where participantes.genero=@vgenero and participantes.cod_partici not in
(select participaqnte_campeonato.cod_partici from participaqnte_campeonato inner join
campeonato
on participaqnte_campeonato.cod_campo=campeonato.cod_campo
where year(campeonato.fecha_ini)between @fecha1 and @fecha2)
go
exec jug_no_participaron 'M', 2012,2021

También podría gustarte