Post on 21-Feb-2016
description
Prueba Taller Integración Bases de Datos (2014-09-26)
Nombre : ________________________________________________________________
Existen club deportivos a lo largo de nuestro país que practican deportes según las estaciones del año y su zona geográfica.Todos los club envían la información de facturación al centro de datos.
Tabla : Region id_region Nombre
Tabla : Provincia id_provincia id_region Nombre
Tabla : Ciudad id_ciudad id_provincia id_zona nombre
Tabla : Zona id_zona nombre (costa, centro, cordillera, …)
Tabla : Estaciones id_estacion nombre (verano. otoño, ....)
Tabla : Club id_club id_ciudad nombre
Tabla : ClubDeporte id_club id_deporte
Tabla : Deportes id_deporte id_estacion nombre (bicicleta, sky, montaña, .....)
Tabla : Factura tipo_factura (AF/EX) nro_factura fecha_factura rut_cliente nombre (nombre o razon social) direccion comuna (nombre comuna) ciudad (nombre ciudad) fono valor_neto valor_iva valor_total id_club
Tabla : Detalle Factura tipo_factura nro_factura correlativo id_deporte nro_participantes glosa valor_neto
01.- Hacer Modelo Entidad Relación
02.- Contar cuantas provincias hay por regiónRegion Nro Provincias
Region 1 4Region 2 2
SELECT region.nombre AS Region, COUNT(provincia.id_region) AS Nro_Provincias FROM provincia JOIN region ON provincia.id_region = region.id_region GROUP BY provincia.id_region;
03.- Contar cuantas ciudades hay por regionRegion Nro Ciudades
Region 1 8Region 2 12
SELECT region.nombre AS Region, COUNT(ciudad.id_ciudad) AS Nro_Ciudades FROM ciudad LEFT JOIN provincia ON (ciudad.id_provincia = provincia.id_provincia) RIGHT JOIN region ON (provincia.id_region = region.id_region) GROUP BY region.id_region;
04.- Mostrar las ciudades por Región y Provincia.Region Provincia Ciudad
Region 1 Provincia 1 Ciudad 1Region 1 Provincia 1 Ciudad 2Region 2 Provincia 3 Ciudad 14
SELECT region.nombre, provincia.nombre, ciudad.nombre FROM ciudad LEFT JOIN provincia ON (ciudad.id_provincia = provincia.id_provincia) RIGHT JOIN region ON (provincia.id_region = region.id_region) WHERE 1;
05.- Mostar todas las ciudades por zonaZona Ciudad
Zona 1 Ciudad 3Zona 1 Ciudad 6
SELECT zona.nombre AS Zona, ciudad.nombre AS Ciudad FROM ciudad JOIN zona ON (ciudad.id_zona = zona.id_zona) WHERE 1;
06.- Mostrar todas las ciudades que están en la zona CordilleraZona Ciudad
Cordillera Ciudad 4Cordillera Ciudad 7
Opcion 1: Listar según id_zona
SELECT zona.nombre AS Zona, ciudad.nombre AS Ciudad FROM ciudad JOIN zona ON (ciudad.id_zona = zona.id_zona) WHERE ciudad.id_zona = 3;
Opcion 2: Listar según nombre de zona
SELECT zona.nombre AS Zona, ciudad.nombre AS Ciudad FROM ciudad JOIN zona ON (ciudad.id_zona = zona.id_zona) WHERE zona.nombre LIKE '%cordillera%';
07.- Mostrar los deportes por Club y EstacionesEstacion Club Deporte
Otoño 24K PescaOtoño 7x24 CaminataSELECT estaciones.nombre, club.nombre, deportes.nombre FROM club_deporte AS cd INNER JOIN deportes ON (cd.id_deporte = deportes.id_deporte) LEFT JOIN club ON (cd.id_club = club.id_club) RIGHT JOIN estaciones ON (deportes.id_estacion = estaciones.id_estacion);
08.- Mostrar el total de facturación por Club por Mes-AñoClub Mes-Año Total
24K 02/2014 13800024K 06/2014 498000
SELECT club.nombre AS Club, DATE_FORMAT(fecha_factura, '%m/%Y') AS Mes_Año , SUM(valor_total) AS Total FROM factura INNER JOIN club ON (factura.id_club = club.id_club) GROUP BY factura.id_club, MONTH(fecha_factura);
09.- Mostrar el total vendido por Deporte durante el mes de Febrero 2013Deporte Total
Pesca 4563000Caminata 8960000
Total neto:
SELECT deportes.nombre AS Deporte, SUM(detalle_factura.valor_neto*nro_participantes) AS Total_neto FROM factura INNER JOIN detalle_factura ON (factura.nro_factura = detalle_factura.nro_factura) LEFT JOIN deportes ON (detalle_factura.id_deporte = deportes.id_deporte) WHERE MONTH(fecha_factura) = 2 AND YEAR(fecha_factura) = 2013 GROUP BY detalle_factura.id_deporte;
Total Bruto:
SELECT deportes.nombre AS Deporte, SUM(detalle_factura.valor_neto*nro_participantes)+((SUM(detalle_factura.valor_neto*nro_participantes))*0.19) AS Total_bruto FROM factura INNER JOIN detalle_factura ON (factura.nro_factura = detalle_factura.nro_factura) LEFT JOIN deportes ON (detalle_factura.id_deporte = deportes.id_deporte) WHERE MONTH(fecha_factura) = 2 AND YEAR(fecha_factura) = 2013 GROUP BY detalle_factura.id_deporte;
10.- Hacer un listado de los deportes por regiones y club deportivosRegion Club Deporte
Region 1 7x24 CaminataRegion 1 24K Pesca
SELECT region.nombre AS Región, club.nombre AS Club, dep.nombre AS Deporte FROM club_deporte AS cd LEFT JOIN deportes AS dep ON (cd.id_deporte = dep.id_deporte) RIGHT JOIN club ON (cd.id_club = club.id_club) INNER JOIN ciudad ON (club.id_ciudad = ciudad.id_ciudad) INNER JOIN provincia ON
(ciudad.id_provincia = provincia.id_provincia) INNER JOIN region ON (provincia.id_region = region.id_region);
11.- Hacer un listado de los deportes que ofrecen cada club deportivo por ciudadClub Ciudad Deporte
A Correr Antofagasta CaminataA Correr Antofagasta Buseo
SELECT club.nombre AS Club, ciudad.nombre AS Ciudad, dep.nombre AS Deporte FROM club_deporte AS cd LEFT JOIN deportes AS dep ON (cd.id_deporte = dep.id_deporte) RIGHT JOIN club ON (cd.id_club = club.id_club) INNER JOIN ciudad ON (club.id_ciudad = ciudad.id_ciudad);
12.- Hacer un listado de la cantidad total de participantes a nivel nacional que tuvo cada deporte durante el mes de Julio 2011. Mostrar tambien los que no tubieron participantes con un 0.
Deporte Total NacionalCaminata 36Pesca 249Guata al Sol 0
PENDIENTE CORREGIR
SELECT deportes.nombre, IF (SUM(df.nro_participantes)>0, SUM(df.nro_participantes), 0) AS Participantes FROM deportes LEFT JOIN detalle_factura AS df ON (deportes.id_deporte = df.id_deporte) LEFT JOIN factura ON df.nro_factura = factura.nro_factura WHERE YEAR(factura.fecha_factura) = 2013 AND MONTH(factura.fecha_factura) = 7 GROUP BY deportes.id_deporte, df.correlativo;
13.- Mostrar el detalle de la factura 12300, afecta, ocupe subquery para mostrar el nombre del deporte.
Tipo Factura Corr Id Dpte Deporte Participantes Detalle NetoAF 12300 1 14 Bicicleta 345 Cicletada 345000
SELECT detalle_factura.tipo_factura AS Tipo, factura.nro_factura AS Factura, detalle_factura.correlativo AS Corr, (SELECT deportes.nombre FROM deportes WHERE detalle_factura.id_deporte = deportes.id_deporte) AS Deporte, detalle_factura.nro_participantes AS Participantes, detalle_factura.glosa AS Detalle, detalle_factura.valor_neto AS Neto FROM factura INNER JOIN detalle_factura ON (factura.nro_factura = detalle_factura.nro_factura) WHERE factura.nro_factura = 12300;