You are on page 1of 4

CENTRO DE GESTIÓN DE MERCADOS, LOGÍSTICA Y TECNOLOGÍAS DE LA

INFORMACIÓN

ANÁLISIS Y DESARROLLO DE SISTEMAS DE INFORMACIÓN

Módulo
Desarrollo de Bases de datos

Taller Procedimientos almacenados 2

Presentado a:
Sandra Rueda
Instructor

Presentado por:
Yessica Yubely Rodríguez Villarraga

Orden:
40130
Cuerpo de desarrollo

1. Crear un procedimiento al que dada la placa de un bus, muestre su


capacidad y el valor promedio de los pasajes para los viajes realizados
durante los últimos dos meses.

select bu_placa, bu_capacidad, AVG (vi_valopasaj)as Valor_Pasaje


from Buses B inner join Viajes v on bu_placa = v.vi_placa
where YEAR (vi_fechviaje)= 2006 and MONTH(vi_fechviaje)
between 1 and 2 and bu_placa = vi_placa
group by bu_placa, bu_capacidad
go

Con procedimiento almacenado, alter es para modificar, execute para ponerlo a


funcionar y tambien se puede declarar variables dandole de una vez los valores:

execute
@placa = 'A0B123',
@Anio = 2006,
@ MesInicio = 1,
@ MesFin = 2 */

alter procedure placa


@placa nchar(6),
@fecha datetime,
@mesIn int,
@mesFin int

as
select bu_placa, bu_capacidad, AVG(vi_valopasaj)
from dbo.Buses b inner join Viajes v on b.bu_placa = v.vi_placa
where b.bu_placa = @placa and year(v.vi_fechviaje)= year (@fecha)and
MONTH(v.vi_fechviaje) in (@mesIn, @mesFin)
group by bu_placa, bu_capacidad
go

exec placa 'VDA011', '2006', 1,2

2. Crear un procedimiento que nos permita conocer la placa del bus, código
de la flota, y número de pasajeros transportados en general es decir, en
todos los viajes que haya realizado. Únicamente para buses cuya
capacidad sea mayor a un número determinado de pasajeros.

use Terminal
go
alter procedure SP_Term
@capacidad int
as

selectbu_placa , bu_codiflot , count (vi_numepasajero)


fromdbo.Buses bus inner join dbo.Viajes via on bus.bu_placa = via.vi_placa
wherebu_capacidad = @capacidad
group by bu_placa , bu_codiflot
go

use Terminal
execute SP_Term

3. Construir un procedimiento que reciba un numero que corresponde a un


trimestre del año y muestre un listado con código y nombre de los
conductores cuya fecha de cumpleaños corresponda a ese trimestre.

use Terminal
go
alter procedure SP_Num3
@trimestre int
as
begin
if @trimestre = 1
select MONTH (co_fechnaci), co_codiconduc , co_nombconduc ,co_fechnaci
from dbo.Conductores
where MONTH (co_fechnaci) in (1 ,2, 3)

else if @trimestre = 2
select MONTH (co_fechnaci)
from dbo.Conductores
where MONTH (co_fechnaci) in (4 ,5,6)
else if @trimestre = 3

select MONTH (co_fechnaci)


from dbo.Conductores
where MONTH (co_fechnaci) in (7 ,8 , 9)
else if @trimestre = 4
select MONTH (co_fechnaci)
from dbo.Conductores
where MONTH (co_fechnaci) in (10 , 11, 12)

select co_codiconduc , co_nombconduc ,co_fechnaci


from dbo.Conductores
where month (co_fechnaci) like @trimestre
end
go

use Terminal
execute SP_Num3

4. Construir un procedimiento que permita incrementar el valor del pasaje en


un porcentaje determinado para una ruta de la cual se recibe su nombre.

use transporte
go
create procedure SP_Num4
@nombre varchar(30)
as

select ru_codiruta, ru_nombruta , ru_valopasaj+ 7000


from dbo.Rutas
where ru_nombruta = @nombre

go

use transporte
Execute SP_Num4

You might also like