prueba bases de datos

7
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

Upload: holden-alberto-silva

Post on 21-Feb-2016

215 views

Category:

Documents


0 download

DESCRIPTION

Desarrollo de prueba de Base de Datos.

TRANSCRIPT

Page 1: Prueba Bases de Datos

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

Page 2: Prueba Bases de Datos
Page 3: Prueba Bases de Datos

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%';

Page 4: Prueba Bases de Datos

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

Page 5: Prueba Bases de Datos

(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;