Olá pessoal, neste artigo veremos os conceitos e exemplos com as cláusulas COMPUTE e 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:
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