Ejercicio 1.4: Añadir uniones, una condición de consulta y una cláusula GROUP BY
Antes de empezar, debe haber realizado el Ejercicio 1.3:
Especificar las columnas de resultados.
En este ejercicio, calificará la consulta realizando las siguientes tareas:
- Limitar los resultados de la consulta a los clientes que tienen vídeos
alquilados actualmente y a los vídeos que están alquilados actualmente.
- Limitar los resultados de la consulta a un cliente específico cuyo nombre
especificará al ejecutarla.
- Organizar los resultados de la consulta según el día de la semana en que deben
devolverse los vídeos alquilados, dentro de cada día según el título del vídeo y, para
cada título de vídeo, según el nombre del cliente.
Unir tablas
Una operación de unión (join) permite recuperar datos de dos o más tablas en función
de valores de columna coincidentes. Los datos de las tablas se enlazan en un solo
resultado. Para esta consulta son necesarias dos uniones. El resultado de la consulta
debe incluir las entradas de las tablas RENTALS y CUSTOMERS que tengan valores de columna
CUST_ID coincidentes. El resultado de la consulta también debe incluir las entradas de
las tablas RENTALS y VIDEOS que tengan ID de vídeo (valores de la columna VID_ID)
coincidentes.
- En el panel Tablas, pulse sobre la cabecera de la tabla R con el botón
derecho del ratón y, a continuación, pulse Crear unión en el menú
emergente.
- En la ventana Crear unión, bajo Código fuente, efectúe las siguientes
selecciones:
- En la lista Tabla (alias), pulse RENTALS (R).
- En la lista Columna, pulse CUST_ID.
- En Destino, efectúe las siguientes
selecciones:
- En la lista Tabla (alias), pulse CUSTOMERS (C).
- En la lista Columna, pulse CUST_ID.
- Pulse Aceptar. Aparecerá un conector de unión entre las dos columnas.
- En el panel Tablas, arrastre el puntero desde la columna VID_ID
de la tabla R (RENTALS) hasta la columna VID_ID de la tabla V
(VIDEOS).
Observe el panel Código fuente SQL para ver las uniones en el código fuente:
WHERE
R.CUST_ID = C.CUST_ID
AND R.VID_ID = V.VID_ID
En el panel Tablas se han creado ambas uniones, como se muestra a continuación:

Puede cambiar el tipo de unión (por ejemplo, puede cambiar la unión interna por
omisión por una unión por la izquierda, por la derecha o externa completa) en el panel
Tablas pulsando el conector con el botón derecho del ratón, pulsando Especificar
tipo de unión en el menú emergente y, a continuación, seleccionando el tipo de
unión que desee en la ventana Especificar unión.
Crear una condición de consulta
A continuación, la consulta necesita una condición de consulta para poder extraer
sólo filas de resultados que contengan el nombre de cliente deseado. Las condiciones se
añaden a la consulta mediante la página Condiciones del panel Diseño.
- Pulse la pestaña Condiciones para ver la página Condiciones.
- Efectúe una doble pulsación en la columna Columna y pulse C.NAME en
la lista.
- Efectúe una doble pulsación en la columna Operador y pulse
el operador =.
- Efectúe una doble pulsación en la columna Valor y especifique :custName.
El signo de dos puntos seguido de un nombre de variable es la sintaxis SQL para
una variable que se sustituirá por un valor al ejecutar la consulta. Verá su
funcionamiento al ejecutar la consulta SQL.
La página Condiciones tiene ahora un aspecto parecido al siguiente:

Añadir una cláusula GROUP BY
Agrupará la consulta por el día de la semana, a continuación por el título y
finalmente por el nombre de cliente. Para crear una cláusula GROUP BY en SQL Builder,
utilice la página grupos del panel Diseño. En esta vista, también puede crear
agrupaciones más avanzadas en el resultado de la consulta mediante expresiones de
columna, grupos anidados, conjuntos de agrupaciones (sólo en DB2 Universal Database) y
las funciones de agrupación ROLLUP y CUBE (en Oracle y DB2
Universal Database).
- En el panel Diseño, pulse la pestaña Grupos.
- Añada la función DAYOFWEEK como columna de resultados.
- En la tabla Columna, efectúe una doble pulsación sobre la primera fila,
pulse Construir expresión en la lista y pulse Intro.
- En la página Constructor de expresiones del asistente, pulse Función.
Se abrirá la página Constructor de expresiones de función.
- En la lista Seleccionar categoría de función, pulse Fecha y hora.
- En la lista Seleccionar función, pulse DAYOFWEEK.
- En la lista Seleccionar firma de función, pulse DAYOFWEEK(DATE)
--> INTEGER.
La firma de función muestra que la función requiere un argumento.
- En la columna Valor de la tabla de argumentos, pulse sobre la casilla,
pulse R.DATE en la lista y pulse Intro.
- Pulse Finalizar. La función DAYOFWEEK se mostrará en la primera casilla
de la tabla Columna.
- En la segunda fila de la tabla Columna, seleccione la columna
V.TITLE en la lista y, a continuación, en le tercera fila, seleccione C.NAME.
La página Grupos tiene ahora un aspecto parecido al siguiente:

Ahora, la consulta está completa. Tiene el aspecto siguiente en SQL
Builder:

Ahora está preparado para empezar el Ejercicio 1.5:
Ejecutar la consulta SQL.