Clase 9: Solución ejercicios de JOIN
11/05/2021 —
Juanse Marquez
Les dejo una solución a los ejercicios de la semana pasada. Es importante que hagan la práctica, aunque no sea para entregar. Espero sus consultas.
Les dejo la solución a los ejercicios de la clase anterior. Vuelvo a copiar los enunciados para facilitar la lectura.
- Mostrar id, superficie y tipo de propiedad para todas las operaciones cuyo precio de venta supere el millón.
SELECT o.id, o.superficie, tp.descripcion
FROM operaciones o
JOIN tipo_propiedad tp ON o.id_tipo_propiedad = tp.id_tipo_propiedad
WHERE o.precio_venta > 1000000;
- Mostrar id, superficie, precio de venta, nombre y apellido del vendedor de todas las operaciones cuya fecha de venta es en mayo de 2006.
SELECT o.id, o.superficie, o.precio_venta, v.nombre, v.apellido
FROM operaciones o JOIN vendedores v ON o.id_vendedor = v.id_vendedor
WHERE fecha_venta BETWEEN '2006-05-01' AND '2006-05-31';
-- Otra forma:
SELECT o.id, o.superficie, o.precio_venta, v.nombre, v.apellido
FROM operaciones o JOIN vendedores v ON o.id_vendedor = v.id_vendedor
WHERE MONTH(fecha_venta) = 5 AND YEAR(fecha_venta) = 2006;
- Mostrar id, superficie, fecha de venta, precio de venta, tipo de propiedad, tipo de operación, nombre y apellido del vendedor y nombre de la provincia para todas las ventas cuya fecha de alta es anterior al 1º de febrero de 2004.
SELECT o.id, o.superficie, o.fecha_venta, o.precio_venta, tp.descripcion,
top.descripcion, v.nombre, v.apellido, p.descripcion
FROM operaciones o
JOIN tipo_propiedad tp ON o.id_tipo_propiedad = tp.id_tipo_propiedad
JOIN tipo_operacion top ON o.id_tipo_operacion = top.id_tipo_operacion
JOIN provincias p on o.id_provincia = p.id_provincia
JOIN vendedores v on o.id_vendedor = v.id_vendedor
WHERE alta < '2004-02-01';
- Mostrar la suma total de los precios de ventas de todas las operaciones, discriminado por provincia.
SELECT p.descripcion, SUM(o.precio_venta)
FROM provincias p
JOIN operaciones o ON p.id_provincia = o.id_provincia
GROUP BY p.id_provincia;
- Repetir el ejercicio anterior, incluyendo ahora las provincias en las que no hubo ventas
SELECT p.descripcion, SUM(o.precio_venta)
FROM provincias p
LEFT JOIN operaciones o ON p.id_provincia = o.id_provincia
GROUP BY p.id_provincia;
Descargar solución en formato .sql
Etiquetas: clases, soluciones