Firebird – CTE “Common Table Expression”

Complexas consultas em Firebird podem ser resolvidas utilizando CTE.
CTE é uma construção que monta uma tabela de memória a ser utilizada em um SELECT e é desmontado quando
termina a execução do SELECT.

1) Considerando uma tabela de vendas (existente no banco de dados):

CREATE TABLE vendas (codigo varchar(20), data date, qtde numeric(18,4), valor numeric(18,4) );

2) Inserir alguns dados na tabela que simule as vendas;
3) Executar a seguinte consulta no banco de dados:

with VendasDoMes as
       ( -- agrupa os dados de vendas
         select Codigo,
                extract(month from data) Mes,
                extract(year from data) Ano,
                sum(qtde) Qtde,
                sum(valor) Total
        from vendas
        group by 1,2,3 -- agrupa as colunas
       )
       select * from VendasDoMes --monta a consulta
       where ano=2015 and mes=12
       order by mes, ano

4) Conclusão:
O SELECT irá retornar a quantidade e total de vendas de todos os produto no mês de Dezembro de 2015.

1 comentário

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *