Olá pessoal, neste artigo veremos os conceitos e exemplos com as cláusulas COMPUTE COMPUTE BY. Acompanhem:

 COMPUTE e COMPUTE BY – Usamos a cláusula COMPUTE para obtermos visualmente dados totalizados. Já com a cláusula COMPUTE BY podemos visualizar os dados sem os mesmos serem agrupados.    

 Por meio do COMPUTE BY, é possível visualizar tanto linhas de detalhe, como linhas de resumo com o uso de uma instrução SELECT.

 Importante ressaltar que o resultado gerado pela cláusula COMPUTE é apenas para visualização e não pode ser usado, ou seja, não possui característica relacional. Em conjunto com o COMPUTE, podemos usar nomes de funções descritas em artigos anteriores, como MIN, MAX, AVG, COUNT ou SUM.

 Com base na tabela Produtos, vamos realizar uma totalização das quantidades de produtos, que no resultado estarão separados por tipo. Para isso, usaremos o seguinte comando:



  SELECT Nome, Fabricante, Quantidade, Tipo
    FROM Produtos
   ORDER BY Tipo
 COMPUTE SUM (Quantidade) BY Tipo
 COMPUTE SUM (Quantidade)

 Veja o resultado:

 
 No código acima temos a cláusula COMPUTE SUM (Quantidade) BY Tipo. Ele usará o tipo de produto como critério para obter subtotais das quantidades de produtos em estoque. Temos também a cláusula COMPUTE SUM (Quantidade), que irá obter como resultado um total geral, ao final da exibição dos dados.
 

 COMPUTE BY com JOIN – Podemos usar a cláusula COMPUTE BY junto de outra cláusula a fim de fazer a associação de várias tabelas. Essa outra cláusula é a JOIN.

 A seguir, temos um exemplo do uso de COMPUTE BY com JOIN, usando as tabelas Funcionario, Cargo e Vendas, criadas nos artigos anteriores desta série:




  SELECT F.NomeFuncionario AS [Nome], F.SalarioFuncionario AS [Salário],
         V.ValorPedido AS [Valor], C.NomeCargo AS [Cargo]
    FROM Funcionario AS F
   INNER JOIN Cargo AS C
      ON C.IdCargo = F.IdCargo
   INNER JOIN Vendas AS V
      ON V.IdFuncionario = F.IdFuncionario
   ORDER BY F.NomeFuncionario
 COMPUTE SUM (F.SalarioFuncionario) BY F.NomeFuncionario
 COMPUTE SUM (F.SalarioFuncionario)

 

 Veja o resultado:

 Valores gerados por COMPUTE – Quando usamos a cláusula COMPUTE, obtemos valores de resumo, os quais são exibidos nos resultados de pesquisa como grupos de resultado divididos. Os resultados de uma pesquisa que inclui uma cláusula COMPUTE são como control-break reports, ou seja, relatórios que resumem dados em intervalos e grupos que o usuário define.

 Com COMPUTE é possível obter valores de resumo para grupos, bem como calcular, para o mesmo grupo, mais de uma função agregada.

 Assim finalizo o artigo. Na próxima parte veremos a continuação deste artigo, além de vermos conceitos e exemplos com a cláusula CASE, aguardem!

 Um abraço, e até o próximo artigo.

 Wellington Balbo de Camargo

 wellingtonbalbo@gmail.com