Oracle PL/SQL totalizador de resultados (ROLLUP/CUBE)

2

Posted on : 15-07-2006 | By : .rafa | In : Banco de Dados, Oracle

Estava precisando de um totalizador de resultados SUM, onde estava me quebrando em fazer cursorzinhos para calcular isso, bom fazer cursor é hiper fácil, mas toda vida fazer isso ?

Ai encontrei duas funções muito da interessante, onde pode ser feito um totalizador de resultados, como por exemplo o SUM que já é um totalizador de resultados agrupados.

Vou mostrar um pequeno exemplo, pois ficará mais fácil de entender.

Tenho a tabela de faturamento TFATURA que contem:
FATURA -> número da nota fiscal
OPERACAO -> operacao de saida ou entrada da nota
CGC -> cgc do cliente
NSERIE -> número da série da nota
DT_EMISSAO -> data da emissao da nota
DT_MOVTO -> data de movimentação da nota
VL_TOTAL -> valor total da nota
CFOP -> Natureza de operação da nota

Agora vamos pensar assim, quero um total de notas que sairam por dia e mes:


select dt_movto, sum(vl_total) "Valor Total"
from tfatura
where operacao = 'S'
and dt_movto between '01/06/2006' and '30/06/2006'
group by rollup(dt_movto);

assim irá mostrar:

Read the rest of this entry »