Conforme a documentação da Microsoft, a cláusula OVER é utilizada quando se deseja computar valores agregados como médias móveis, agregações cumulativas, uma soma acumulada, ou os primeiros N resultados por grupo. Sendo assim, ela
(…) determina o particionamento e a ordenação de um conjunto de linhas antes da aplicação da função de janela associada. Isto é, a cláusula OVER define uma janela ou conjunto de linhas especificado pelo usuário em um conjunto de resultados de consulta. Uma função de janela computa um valor para cada linha na janela.
A seguir, demonstramos no exemplo abaixo como realizar uma soma acumulada de um determinado período utilizando a cláusula OVER em conjunto com a cláusula WHERE.
Para calcular este valor acumulado, utilizamos o seguinte código SQL em edição direta:
SELECT Somatorio.E3TimeStamp, Somatorio.Campo, Sum(Somatorio.Campo) OVER(ORDER BY Somatorio.E3TimeStamp) AS Acumulado FROM Somatorio WHERE(Somatorio.E3TimeStamp >=#<%DataInicial%># AND Somatorio.E3TimeStamp <=#<%DataFinal%>#) ORDER BY Somatorio.E3TimeStamp ASC
Para utilizar esta aplicação exemplo, é necessário configurar o banco de dados no Elipse E3 para que este aponte para um banco de dados criado no SQL Server Management Studio; então, quando a aplicação for executada, serão inseridos alguns registros através do botão Gravar Registro:
Requisitos:
– Banco de dados SQL Server;
– E3 Versão 5.0.329 ou superior;
Artigos relacionados
- Tutorial de instalação e configuração do Microsoft® SQL Server® Express 2017.
- Criando uma soma cumulativa com o banco SQL utilizando apenas uma Consulta.
- Usando Bancos de dados no E3: Capítulo 2 – Conexão com o Banco de Dados.
- SELECT – Cláusula OVER (Transact-SQL)