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:

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.

  1. 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.
  2. En la ventana Crear unión, bajo Código fuente, efectúe las siguientes selecciones:
    1. En la lista Tabla (alias), pulse RENTALS (R).
    2. En la lista Columna, pulse CUST_ID.
  3. En Destino, efectúe las siguientes selecciones:
    1. En la lista Tabla (alias), pulse CUSTOMERS (C).
    2. En la lista Columna, pulse CUST_ID.
  4. Pulse Aceptar. Aparecerá un conector de unión entre las dos columnas.
  5. 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:

Uniones de tabla

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.

  1. Pulse la pestaña Condiciones para ver la página Condiciones.
  2. Efectúe una doble pulsación en la columna Columna y pulse C.NAME en la lista.
  3. Efectúe una doble pulsación en la columna Operador y pulse el operador =.
  4. 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:

Panel Diseño - Página Condiciones

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).

  1. En el panel Diseño, pulse la pestaña Grupos.
  2. Añada la función DAYOFWEEK como columna de resultados.
    1. En la tabla Columna, efectúe una doble pulsación sobre la primera fila, pulse Construir expresión en la lista y pulse Intro.
    2. En la página Constructor de expresiones del asistente, pulse Función. Se abrirá la página Constructor de expresiones de función.
    3. En la lista Seleccionar categoría de función, pulse Fecha y hora.
    4. En la lista Seleccionar función, pulse DAYOFWEEK.
    5. 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.
    6. En la columna Valor de la tabla de argumentos, pulse sobre la casilla, pulse R.DATE en la lista y pulse Intro.
    7. Pulse Finalizar. La función DAYOFWEEK se mostrará en la primera casilla de la tabla Columna.
  3. 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:

    Panel Diseño - Página grupos

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

Consulta completada

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

Términos de uso | Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.