< Anterior | Próximo >

Incluindo Junções, uma Condição de Consulta e uma Cláusula GROUP BY

Neste exercício, você restringe os resultados da consulta aos clientes que estão atualmente alugando vídeos e aos vídeos que estão sendo alugados atualmente. Você também limita os resultados da consulta a um cliente específico cujo nome é especificado na execução da consulta. E, finalmente, você organiza os resultados da consulta pelo dia da semana em que os vídeos alugados serão devolvidos. Em cada dia da semana, você organiza os vídeos por seu título e para cada título de vídeo, pelo nome do cliente.

Fazendo a Junção de Tabelas

Uma operação de junção permite que você recupere dados de duas ou mais tabelas com base em valores de colunas correspondentes. Os dados nas tabelas são vinculados em um único resultado. Duas junções são necessárias para esta consulta. O resultado da consulta precisa incluir as entradas de tabela RENTALS e CUSTOMERS que possuem valores de coluna CUST_ID correspondentes. O resultado da consulta também deve incluir as entradas de tabela RENTALS e VIDEOS que possuem IDs de vídeo correspondentes (valores de coluna VID_ID).

Para juntar tabelas:

  1. Na área de janela de Tabelas, clique com o botão direito do mouse no cabeçalho da tabela R e em seguida clique em Criar Junção (Create Join) no menu pop-up.
  2. Na janela Criar Junção em Origem (Source), faça as seguintes seleções:
    1. Na lista Tabela (alias) (Table (alias)), clique em RENTALS (R).
    2. Na lista Coluna (Column), clique em CUST_ID.
  3. Em Destino, faça as seguintes seleções:
    1. Na lista Tabela (alias) (Table (alias)), clique em CUSTOMERS (C).
    2. Na lista Coluna (Column), clique em CUST_ID.
  4. Clique em OK. Um conector de junção aparece entre as duas colunas.
  5. Na área de janela de Tabelas, arraste seu cursor da coluna VID_ID na tabela R (RENTALS) para a coluna VID_ID na tabela V (VIDEOS).
Consulte a área de janela de Origem SQL para ver as junções no código fonte:
       FROM
      XMLTEST.VIDEOS AS V JOIN XMLTEST.RENTALS AS R JOIN XMLTEST.CUSTOMERS AS C
      ON R.CUST_ID = C.CUST_ID ON V.VID_ID = R.VID_ID

Na área de janela de Tabelas, ambas as junções foram criadas como mostrado aqui:

Junções de Tabelas

Você pode alterar o tipo de junção (por exemplo, da junção interna padrão para uma junção esquerda, direita ou externa) na área de janela de Tabelas clicando com o botão direito do mouse no conector, clicando em Especificar Tipo de Junção (Specify Join Type) no menu pop-up e depois selecionando o tipo de junção que deseja na janela Especificar Junção.

Criando uma Condição de Consulta

Em seguida, a consulta precisa de uma condição de consulta para que extraia somente linhas de resultado que tiverem o nome do cliente que você deseja. Você inclui condições para a consulta utilizando a página Condições na área de janela de Design.

Para criar uma condição de consulta:

  1. Clique na guia Condições (Conditions) para ver a página Condições.
  2. Na primeira linha, dê um clique duplo na célula na coluna Coluna (Column) e, em seguida, clique em C.NAME na lista.
  3. Na mesma linha, dê um clique duplo na célula na coluna Operador (Operator) e, em seguida, clique no operador =.
  4. Nessa linha, dê um clique duplo na célula na coluna Valor (Value) e, em seguida, digite :custName. Os dois pontos seguidos por um nome de variável é a sintaxe SQL para uma variável que será substituída por um valor quando você executar a consulta. Você verá como isso funciona ao executar a consulta SQL.
Agora a página Condições tem a imagem mostrada aqui:

Área de Janela Design - Página Condições

Incluindo uma Cláusula GROUP BY

Você agrupará a consulta por dia da semana, depois por título e depois por nome do cliente.
Para criar uma cláusula GROUP BY no SQL Query Builder, utilize a página Grupos na área de janela Design. Nesta visualização, você também pode criar agrupamentos mais avançados no resultado da consulta utilizando expressões de coluna, grupos aninhados, conjuntos de agrupamentos (no DB2 apenas) e as funções de agrupamento ROLLUP e CUBE (no Oracle e no DB2).

Para incluir uma cláusula GROUP BY:

  1. Na área de janela de Design, clique na guia Grupos (Groups).
  2. Inclua a função DAYOFWEEK como uma coluna de resultado.
    1. Na tabela Coluna (Column), clique duas vezes na primeira linha, clique em Construir Expressão (Build Expression) na lista e depois pressione Enter.
    2. Na página Tipos de Expressão do assistente, clique em Função (Function) e, em seguida, clique em Avançar (Next). A página Function Expression Builder é aberta.
    3. Na lista de categorias Selecionar uma Função (Select a function), clique em Data e Hora (Date and time).
    4. Na lista Selecionar uma função (Select a function), clique em DAYOFWEEK.
    5. Na lista Selecionar uma assinatura de função (Select a function signature), clique em DAYOFWEEK(DATE) --> INTEGER. A assinatura de função mostra que a função requer um argumento.
    6. Na coluna Valor (Value) da tabela de argumento, clique na célula, clique em R.DATE na lista e depois pressione Enter.
    7. Clique em Concluir. A função DAYOFWEEK é mostrada na primeira célula da tabela Coluna (Column).
  3. Na segunda linha da tabela Coluna (Column), selecione a coluna V.TITLE da lista, depois, na terceira linha, selecione C.NAME. Agora a página Grupos tem a imagem mostrada a seguir:

    Área de Janela Design - Página Grupos

Agora a consulta foi concluída. A consulta se parece com o seguinte no SQL Query Builder:

Consulta Concluída

< Anterior | Próximo >

Feedback