Consultas SQL Esenciales para la Gestión de Alojamientos Turísticos
Enviado por Chuletator online y clasificado en Francés
Escrito el en español con un tamaño de 4,85 KB
1.
Obtener el grado de dificultad y el número de actividades que cumplen el grado
Dedificultad, de aquellas actividades que se dedican a la actividad del paseoselect dificultad as [Grado de dificultad],count(dificultad)
As [Numero de actividades]from actividades where nombre in (select nombre from
Actividades where descripción like '%paseo%') group by dificultad2. Obtener el nombre, teléfono de los alojamientos y el
Nombre de los empleados que han trabajado, en los alojamientos que están situados en el
Concejo de Castropol. Select distinct per.Nombre, alo.Nombre, alo.Teléfono from
Alojamientos alo, Personal per, Trabajar tra where alo.Dirección like
'%castropol%' and alo.IdAlojamiento=tra.IdAlojamiento and tra.IdTrabajador=per.IdTrabajador
And tra.FecBaja is not null 3. Listado de alojamientos con el número total de
Habitaciones de cada uno de ellos,ordenados de menor a mayor número de habitaciones. Select
COUNT(*) as numHabitaciones, alo.Nombre from Habitaciones hab, Alojamientos alo
Where hab.IdAlojamiento=alo.IdAlojamiento group by alo.Nombre order by 1 asc 4. Obtener para cada alojamiento el precio mínimo, precio
Máximo y precio medio de sus habitaciones. Todos los componentes de la lista de
Selección de salida debe mantener el mismo formato que el campo precio. Select
Cast(AVG(precio) as decimal(5,2)) as precio_medio , MIN(precio) as
Precio_minimo, MAX(precio) as precio_maximo, hab.IdAlojamiento from habitaciones
Hab group by hab.IdAlojamiento5. Independientemente del alojamiento, indicar por cada actividad
El número de veces que se desarrollan estas en el día. Existe la posibilidad
Que alguna actividad esté en el catálogo de actividades y todavía no se esté
Ofertando. Select act.Nombre, act.Descripción,org.Dia, COUNT(org.Dia) as
[Numero de veces] from Actividades act, organizar org where act.IdActividad *=
Org.IdActividad group by act.Nombre, act.Descripción,org.Dia 6. Mostrar toda la información de las actividades que no
Están programadas en ninguna oferta de los alojamientos. Select * from
Actividades act where not exists (select * from organizar where idActividad
=act.IdActividad) 7. De los alojamientos que dirigen personal con residencia
En Gijón. ¿Cuántos ofertan más de 2 y menos de 7 actividades a la semana? Select
COUNT(*) as [Número de establecimientos] from alojamientos where idalojamiento
=any (select idalojamiento from organizar group by idalojamiento having
COUNT(*) between 3 and 6) and pcontacto in (select idtrabajador from Personal where
Dirección like '%gijón%') 8. Obtener el nombre del alojamiento, la habitación y el
Precio de las habitaciones más caras del sistema. select alo.Nombre,Hab.IdHabitacion,hab.Precio from Habitaciones
Hab, Alojamientos alo where hab.Precio = (select MAX(habi.Precio) from Habitaciones
Habi,Alojamientos ali where habi.IdAlojamiento=ali.Idalojamiento) and hab.IdAlojamiento=alo.IdAlojamiento 9. Obtener el nombre de los alojamientos que poseen más de 3
Habitaciones, y el precio de alguna de sus habitaciones, aplicándole un 35% de
Descuento es superior al precio medio de todas las habitaciones del sistema. Select
Alo.Nombre, alo.Dirección from Alojamientos alo where 3 < (select count(*)
From habitaciones hab where hab.IdAlojamiento=alo.IdAlojamiento) and
Alo.IdAlojamiento in (select idalojamiento from Habitaciones where precio*0.65
> (select AVG(hab.Precio) from habitaciones hab)) 10.¿Cuántos empleados han trabajado donde trabaja
Actualmente el Sr. Peláez? Select count(*) as [Número de empleados] from
Trabajar tra where tra.IdAlojamiento = (select tra.Idalojamiento from Personal
Per, trabajar tra where per.Nombre like '%Peláez%' and per.IdTrabajador=Tra.IdTrabajador
And Tra.FecBaja is null) and tra.FecBaja is not null11.Empleado que comenzó a trabajar más pronto. Select * from
Personal where idTrabajador = (select tra.IdTrabajador from Trabajar tra where
Tra.FecAlta=(select MIN(tra.FecAlta) from Trabajar tra ))12.Realizar el historial laboral de cada uno de los
Empleados. Ordena la salida por fecha de incorporación en cada uno de los
Alojamientos del empleado. Select per.Nombre,alo.Nombre,tra.FecAlta,tra.FecBaja
From Personal per, Trabajar tra, Alojamientos alo where per.IdTrabajador=tra.IdTrabajador
And tra.IdAlojamiento=alo.IdAlojamiento order by 1, 3 13. ¿Cuántas habitaciones sin baño posee cada alojamiento? select alo.Nombre, COUNT(*) as [Número de baños] from
Habitaciones hab, Alojamientos alo where hab.Baño='n' and hab.IdAlojamiento=alo.IdAlojamiento
Group by alo.Nombre 14. Obtener los alojamientos que han realizado más de 2
Contratos de personal select alo.Nombre from Trabajar tra, Alojamientos alo where
Tra.IdAlojamiento=alo.IdAlojamiento group by alo.Nombre having (COUNT(*)>2)