Consultas Sql T4
BLOQUE 1 (0,2 cada respuesta)
1. Obtener el título y la duración de todas las películas que tenemos en el videoclub.
select titulo, duracion from pelicula
2. Obtener un listado de los socios con sus apellidos y nombre ordenados alfabéticamente por
el primer apellido desde la A hasta la Z.
select apellido1, apellido2, nombre from socio order by apellido1 asc
3. Obtenerel título de las películas del año 2014.
select titulo from pelicula where anyo = '2014'
4. Obtener la cantidad total de películas que tienen una duración inferior a 100 minutos.
select count(*) as total_peliculas from pelicula where duracion <100
BLOQUE 2 (0,45 cada respuesta)
5. Obtener la fecha de nacimiento convertida al formato “dd/mm/yyyy” y el nombre de los
socios que viven en Aguadulce oEl Parador
select to_char(fec_nac,'dd/mm/yyyy'), nombre from socio where poblacion = 'Aguadulce' or
poblacion = 'El Parador'
6. Obtener el nombre de los socios en una misma columna con el formato APELLIDO1
(separación de coma) seguido del NOMBRE de aquellos socios que sean menores de 35 años a
fecha de hoy.
select apellido1 || ', ' || nombre as NOMBRE from socio where trunc((sysdate -fec_nac)/365,0)<35
7. Obtener la cantidad total de copias alquiladas durante todo el mes de noviembre.
select count(*) as "TOTAL_NOV" from alquiler where fec_alquila between '11/1/2014' and
'11/30/2014'
8. Obtener el precio mínimo y máximo de todas las películas almacenadas.
select min(precio_alquiler) as PRECIO_MIN, max(precio_alquiler) as PRECIO_MAX from
pelicula
9. Obtener un listado donde se muestre porcada uno de los estados en los que puede estar una
película, la cantidad total de las copias de películas que existen por cada uno de ellos.
select estado, count(*) as "CANTIDAD"
from copia_pelicula
group by estado
10. Obtener el número de socio y la media de días que tiene alquiladas las películas cada uno
de ellos. Ordena el listado de mayor a menor valor medio en días.
select socio,avg(fec_devolucion - fec_alquila) as "MEDIA"
from alquiler
group by socio
order by 2 desc
BLOQUE 3 (0,65 cada respuesta)
11. Obtener el título de la película, el identificador de la copia, el género, el año y el estado de
todas las copias que hay.
select p.titulo, c.id_copia, p.genero, p.anyo, c.estado
from pelicula p, copia_pelicula c
where p.codigo = c.pelicula
12. Obtener el identificador de la copia depelícula junto a la última fecha que se alquiló de
aquellas copias que estén en estado “ESTROPEADA”
select c.id_copia, max(fec_alquila) as "ULT_ALQUILER"
from alquiler a, copia_pelicula c
where a.copia_pel = c.id_copia
and upper(c.estado) = 'ESTROPEADA'
group by c.id_copia
13. Obtener un histórico de alquiler de la copia de película cuyo id es 113 donde se detalle el
número de socio que la haalquilado, la fecha de alquiler y la fecha de devolución con formato
DD/MM/YYYY. En el caso de que alguna fecha de devolución tenga valor nulo, debe aparecer
el texto “NO DEVUELTA”
select socio, TO_CHAR(fec_alquila,'DD/MM/YYYY') as "ALQUILA",
NVL(TO_CHAR(fec_devolucion,'DD/MM/YYYY'),'NO DEVUELTA') as "DEVUELTA"
from alquiler
where copia_pel='113'
order by fec_alquila
14. Obtener el número del socio,la fecha de devolución y el número de días de retraso
(incluyendo la palabra “días” al final) en la devolución de aquellos socios que han alquilado
alguna copia de la película cuyo título comienza por “BIG” (utilizando las mayúsculas para
hacer dicha comparación).
select a.socio, a.fec_devolucion, (a.fec_devolucion-a.fec_alquila)-1 || ' días' as "DIAS_RETRASO"
from pelicula p, copia_pelicula c,alquiler a
where p.codigo = c.pelicula
and id_copia = a.copia_pel
and UPPER(p.titulo) LIKE 'BIG%'
15. Obtener el título de la película y el identificador de la copia junto a todos los datos del
socio que haya realizado el último alquiler.
select p.titulo, c.id_copia, s.*
from pelicula p, copia_pelicula c, alquiler a, socio s
where s.num_socio = a.socio
and a.copia_pel = c.id_copia
and c.pelicula...
Regístrate para leer el documento completo.