Saltar la navegación

17.- Ejercicios propuestos

DAM_AD_03_P_010

EJERCICIO DE CONSULTAS HQL

Una empresa dedicada al alquiler de automóviles dispone de la siguiente información almacenada en una BD relacional:

Tabla CLIENTES: Contiene la información de los clientes de la empresa de alquiler.

CREATE TABLE CLIENTES(
COD_CLIENTE NUMBER(4) PRIMARY KEY, 
NOMBRE VARCHAR2(15),
DIRECCION VARCHAR2(15),
POBLACION VARCHAR2(15),
FECHA_NAC DATE);

Tabla GARAJES: Contiene la información de los garajes donde se guardan los coches de alquiler.

CREATE TABLE GARAJES(
COD_GARAJE NUMBER(4) PRIMARY KEY, 
NOMBRE VARCHAR2(15),
DIRECCION VARCHAR2(15),
POBLACION VARCHAR2(15));

Tabla COCHES: Contiene la información de los coches que tiene la empresa de alquiler.

CREATE TABLE COCHES(
COD_COCHE NUMBER(4) PRIMARY KEY, 
MODELO VARCHAR2(15),
MATRICULA VARCHAR2(15),
COD_GARAJE NUMBER(4) REFERENCES GARAJES (COD_GARAJE),
PRECIO_DIA NUMBER(4),
KILOMETROS NUMBER(6));

Tabla RESERVAS : Contiene la información de las reservas que se realizan en la empresa. Un cliente puede alquilar varios coches en una misma reserva.

CREATE TABLE RESERVAS(
COD_RESERVA NUMBER(4) PRIMARY KEY, 
COD_CLIENTE NUMBER(4) REFERENCES CLIENTES (COD_CLIENTE),
FECHA_COMIENZO DATE,
FECHA_FIN DATE,
NOMBRE_AGENCIA VARCHAR2(15));

Tabla RESERVA_COCHES: Contiene los coches que forman la reserva, una misma reserva puede tener varios coches.

CREATE TABLE RESERVA_COCHES(
COD_RESERVA NUMBER(4) REFERENCES RESERVAS (COD_RESERVA),
COD_COCHE NUMBER(4) REFERENCES COCHES(COD_COCHE),
KIL_REALIZADOS NUMBER(6),
CONSTRAINT PK_RESER_COCHES PRIMARY KEY (COD_RESERVA, COD_COCHE));

El modelo de datos se representa en la siguiente figura:

A partir de estas tablas realizar las siguientes consultas en ORACLE y MYSQL:


1. Obtener los nombres de agencia y el número de reservas realizadas por clientes que no sean de Talavera. Visualizar el nombre de agencia y el número de reservas.

NOMBRE_AGENCIA  NUMERO
--------------- ----------

2. Obtener los datos de los coches que están en garajes de talavera y cuya matrícula contenga dos letras B seguidas después de los dígitos. Visualizar todos los datos de coches.

COD_COCHE  MODELO          MATRICULA       COD_GARAJE PRECIO_DIA KILOMETROS
---------- --------------- --------------- ---------- ---------- ----------

3. Obtener los datos de TODOS los garajes de Madrid y el número de coches que se guardan. Visualizar nombre de garaje, dirección, población y número de coches.

NOMBRE          DIRECCION       POBLACION       NUM COCHES
--------------- --------------- --------------- ----------


4. Obtener el importe total de cada reserva. El importe se calcula multiplicando los días de reserva por el precio por día del coche o de los coches que componen la reserva. Visualizar el código de reserva, nombre de cliente y el total importe.

COD_CLIENTE NOMBRE COD_RESERVA TOTAL IMPORTE
----------- --------------- ----------- -------------

5. Obtener el nombre de cliente o clientes que más coches diferentes han alquilado. Visualiza el código de cliente y el nombre de cliente.

COD_CLIENTE NOMBRE
----------- ---------------


6. Obtener los coches qué más veces han sido alquilados. Visualizar cod_coche, modelo y matrícula.

COD_COCHE MODELO MATRICULA
---------- --------------- ---------------

7. Obtener las reservas realizadas por clientes de Talavera en las que reservaron dos o más coches. Visualizar código de cliente, el nombre de cliente, código de reserva, código de coche, modelo y matrícula.

COD_CLIENTE NOMBRE          COD_RESERVA COD_COCHE  MODELO          MATRICULA
----------- --------------- ----------- ---------- --------------- ---------------


8. Obtener el número de reservas realizadas por TODOS clientes en cada uno de los trimestres. Visualizar código de cliente, nombre de cliente, número de reservas realizadas en el primer trimestre, número de reservas realizadas en el segundo trimestre, en el tercero, en el cuarto y el total de reservas.


COD_CLIENTE NOMBRE          1 TRIMESTRE 2 TRIMESTRE 3 TRIMESTRE 4 TRIMESTRE TOTAL RESERVAS
----------- --------------- ----------- ----------- ----------- ----------- --------------

Desde este enlace te puedes descargar el script para la creación de las tablas.

DAM_AD_03_P_020

Añadir al ejercicio DAM_AD_03_R_050 los métodos para realizar los informes a proveedores y proyectos.

Las ventanas son las siguientes:

Ventana de informes para proveedores: se elige un proveedor de la lista desplegable, se muestra el nombre y se pulsa uno de los siguientes botones:

  • Botón Ver detalles del Proveedor, mostrará un informe de los datos del proveedor, las piezas que ha suministrado y los proyectos a los que ha suministrado, algo similar a esta salida:
CÓDIGO Proveedor: ______   NOMBRE:________   APELLIDOS: ______________
DIRECCIÓN: _____________________ COMISIÓN: ________ Proyectos a los que suministra: CODIGO Nombre Proyecto Ciudad Nombre de zona -------------------------------------------------------- Xxxxxx xxxxxxxxxxxxxxx xxxxxxx xxxxxxxxxx
xxxxxx xxxxxxxxxxxxxxx xxxxxxx xxxxxxxxxx

Piezas que suministra: CODIGO Nombre Pieza Cantidad total suministrada --------------------------------------------------
                      xxxxxx    xxxxxxxxxxxxxxx        xxxxxxxxxx
                      xxxxxx    xxxxxxxxxxxxxxx        xxxxxxxxxx
                    --------------------------------------------------
                     TOTAL CANTIDAD SUMINISTRADA:     xxxxxxxxxxxxx
  • Botón Ver estadísticas Globales: se mostrarán resultados estadísticos, el o los proveedores que más piezas suministran, el o los proveedores que suministran a más proyectos. El o los proveedores que que no suministran ninguna pieza.
  • Botón Ver Totales: se muestran los datos de todos los proveedores, el número de piezas que suministran, el número de proyectos a los que suministran, el total de piezas que ha suministrado(suma de cantidad) y el total importe de ese proveedor (suma de pvp de las piezas por la cantidad suministrada por pieza)
------------------------------- DATOS DE PROVEEDORES ------------------------------------------------------------------------
CODIGO  NOMBRE                   APELLIDO                       NUM PIEZAS  NUM PROYEC   SUMA CANTIDAD  TOTAL IMPORTE
-----------------------------------------------------------------------------------------------------------------------------
 xxxxx   xxxxxxxxxxxxxxxxx        xxxxxxxxxxxxxxxxxxxxxxx         xxxxxxx      xxxxxx       xxxxxxxx        xxxxxxxxx
 xxxxx   xxxxxxxxxxxxxxxxx        xxxxxxxxxxxxxxxxxxxxxxx         xxxxxxx      xxxxxx       xxxxxxxx        xxxxxxxxx
Nombre de proveedor (o proveedores) con más importe: xxxxxxxxx
Nombre de proveedor (o proveedores) con más suma de cantidad: xxxxxxxxxx

 

Ventana de informes para proyectos: se elige un proyecto de la lista desplegable, se muestra el nombre y se pulsa uno de los siguientes botones:

Botón Ver detalles del Proyecto, mostrará un informe de los datos del proyecto, las piezas que se le han suministrado y los proveedores que le han suministrado, algo similar a esta salida:

CÓDIGO PROYECTO: ______   NOMBRE:________   
CIUDAD: _____________________ PRESUPUESTO: ________
Proveedores y piezas que le suministran: CODIGO PROV Nombre Proveedor COD PIEZA NOMBRE PIEZA CANTIDAD IMPORTE ----------------------------------------------------------------------------------
xxxxxx xxxxxxxxxxxxxxx xxxxxxxxx xxxxxxxxxxxxx xxxxx xxxxxxxx
            xxxxxx     xxxxxxxxxxxxxxx      xxxxxxxxx  xxxxxxxxxxxxx    xxxxx      xxxxxxxx
         ----------------------------------------------------------------------------------
         TOTALES :                                                    xxxxxxxxx    xxxxxxxx

 

Botón Ver estadísticas Globales: se mostrarán resultados estadísticos, el o los proyectos al que le han suministrado más piezas diferentes. El o los proyectos a los que le han suministrado más proveedores. Proyecto o proyectos al que no le han suministrado ninguna pieza. 

Botón Ver Totales: se muestran los datos de todos los proyectos, el número de piezas que se le han suministrado, el número de proveedores que le han suministrado , el total de piezas suministradas(suma de cantidad) y el total importe de las piezas (suma de pvp de las piezas por la cantidad suministrada por pieza)

------------------------------- DATOS DE PROYECTOS-------------------------------------------------------------
CODIGO  NOMBRE                  PRESUPUESTO               NUM PIEZAS  NUM PROVEE  SUMA CANTIDAD  TOTAL IMPORTE
---------------------------------------------------------------------------------------------------------------
 xxxxx   xxxxxxxxxxxxxxxxx      xxxxxxxxxxxxxxxxxxxxxxx   xxxxxxx      xxxxxx        xxxxxxxx        xxxxxxxxx
 xxxxx   xxxxxxxxxxxxxxxxx      xxxxxxxxxxxxxxxxxxxxxxx   xxxxxxx      xxxxxx        xxxxxxxx        xxxxxxxxx
Nombre de proyecto(o proyectos) con más importe: xxxxxxxxx
Nombre de proyecto (o proyecto) con más suma de cantidad: xxxxxxxxxx

Obra publicada con Licencia de Documentación Libre de GNU (GNU Free Documentation License) (Versión local)