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)

Entradas relacionadas: