Sie sind auf Seite 1von 6

UNIVERSIDAD REGIONAL AUTONÓMA DE LOS ANDES

“UNIANDES”

NOMBRE

OSCAR P. CAYAMBE V.

ESPECIALIDAD

SISTEMAS MERCANTILES

MATERIA:

Base de datos II

TEMA

FUNCIONES AGREGADAS

FECHA

12/01/18
--SUM
--1.- Implementar un Script que permita mostrar el acumulado de los montos registrados
-- en la tabla pago (funcion SUM).
use DBRESERVA
go

select sum(monto) as [total acumulado]


from PAGO

--2.-Implementar un Script que permita mostrar el acumulado de los montos registrados


en la tabla pago por cada año,
--coonsidere el año de la columna fecha.
--use la funcion SUM y la clausula Group By.
select year (fecha) as [Año], sum (monto) as [total acumulado]
from PAGO
group by year (fecha)
go
--3.-Implementar un Script que permita mostrar el acumulado de los monto registrados
en la tabla pago por cada año,
--y mes, cconsiddere el año de la columna fecha.
--use la funcion Sum y la clausula Group By
select year (fecha) as [año], month (fecha) as [mes],
sum (monto) as [total acumulado]
from PAGO
group by year (fecha), month (fecha)
go

--COUNT (Contar el numero de registros )


--1.-implementar un Script que permita determinar el total de pasajeros
registrados(Funcion COUNT)
use DBRESERVA
go

select count (*) as [total pasajeros]


from PASAJERO
go

-- 2.-el total de pasajeros registrados agrupados por su pais , tener en cuenta las
columnas a mostrar Nombre del pais,
--Total pasajeros. Use la funcion agregada COUNT y la clausula Group By e INNER JOIN
select pai.nombre as [Pais], count (pas.idpasajero)
as [total pasajeros]
from PASAJERO pas inner join pais pai
on pas.idpais=pai.idpais
group by pai.nombre
go

--3.-Implementar un script que permita mostrar el total de paajeros y el monoto


acumulado
--de pagos de sus viajes realizados por un determinado pais.
select pai.nombre as [Pais], count (pas.num_documento)
as [total pasajeros], sum(pag.monto) as [monto acumulado]
from pasajero pas inner join pais pai
on pas.idpais=pai.idpais inner join pago pag
on pas.idpasajero=pag.idpasajero
group by pai.nombre
go
--MAX-MIN
--1.- Implementar un Script que permita mostrar el monto mas alto y mas bajo registrado
en la tabla pago
--(funcion max y min)
select max(monto) as [monto mayor],
min(monto) as [monto menor]
from PAGO
go
--2.-Implementar un script que permita mostrar los montos mas altos y bajos por año de
la tabla de pago, ordenados
--en forma descendente
select year (fecha) as [año], max (monto) as [monto mayor],
min (monto) as [Monto Menor]
from PAGO
group by YEAR (fecha)
order by YEAR (fecha) desc
go
--3.-Implementar un Script que permita mostrar los datos del pasajero que registra el
mayor monto desde la tabla pago
declare @maxPago money
select @maxPago= max(monto) from PAGO
select pas.*
from pasajero pas
where pas.idpasajero=(select idpasajero from pago where monto =@maxPago)
go
--AVG
--1.-Implementar un Scrip que permita mostrar el precio promedio de las tarifas
asignadas
--a los diferentes vuelos. (Funcion AVG)
select avg (precio)as [Promedio Tarifa]
from tarifa
go

--2.-Implementar un Scrip que permita mostrar el monto promedio de pagos agrupados


por paises
--(funcion AVG)
select pai.nombre as [Pais], avg (pag.monto) as [Promedio pagar]
from pago pag inner join PASAJERO pas
on pas.idpasajero=pag.idpasajero
inner join pais pai
on pas.idpais=pai.idpais
group by pai.nombre
go

-- CONDICIONES

--1.-Implementar un Scrip que permita insertar un nuevo registro en la tabla pais, en caso
se
--registre duplicidad en el nombre de un pais mostrar un mensaje de "pais ya registrado",
--caso contrario insertar dicho registro y mostrar un mensaje de "Pais registrado
correctamente"
declare @idpais char(4)='0012',
@nombre varchar (30)='chile'
if exists (select * from pais where nombre=@nombre)
begin
print 'Pais ya registrado'
end
else
begin
insert into pais (idpais, nombre)
values (@idpais,@nombre)
print 'Pais registrado correctamente'
end
go

--2.-Implementar un Script que permita mostrar el mensaje de no hay pasajeros en este


pais, solo cuando el total de
--pasajeros asignados a un determinado pais no tenga registros en la tabla pasajero. Caso
contrarios determinar
--cuantos pasajero tiene dicho pais.
declare @nombre char(40)= 'Bolivia'
if (select count(*) from pasajero pas
left join pais pai on pas.idpais=pai.idpais
group by pai.nombre=@nombre) is null
begin
print 'No hay pasajeros en este pais'
end
else
begin
declare @total int
select @total=count (*)
from PASAJERO pas left join pais pai
on pas.idpais=pai.idpais
group by pai.nombre
having pai.nombre=@nombre

print 'el pais'+ @nombre + 'tiene' +


cast (@total as char (2)) + 'Pasajeros'
end
go

Das könnte Ihnen auch gefallen