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

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);
dt_movto   Valor Total
---------- ------------
01/06/2006       120,00
02/06/2006       100,00
05/06/2006      1120,00
06/06/2006        70,00
07/06/2006	 122,00
08/06/2006	  10,00
09/06/2006	 205,00
12/06/2006	 333,00
13/06/2006	 974,00
14/06/2006	6115,00
15/06/2006	 837,00
16/06/2006	 902,00
19/06/2006	 991,00
20/06/2006	 752,00
21/06/2006	 111,00
22/06/2006	 100,00
23/06/2006	 811,00
26/06/2006	 887,00
27/06/2006	2502,00
28/06/2006	1993,00
29/06/2006	5083,00
30/06/2006	2532,00
	       26670.00

E ai está o resultado do mês 26670.00. O cube funciona da mesma forma, agora é só testar. Mais detalhes em psougLinha de CódigoadpdatabaseAbout.

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

Autor: Rafael Stoever

Bacharel em Sistema de Informação pela Uniasselvi, atualmente cursando Gerenciamento de Projetos em TI pela Pós Graduação Uniasselvi. Atuo como Analista de suporte a banco de dados – DBA pela Lumina Serviços em TI residente de Blumenau/ SC, OPN Certified Specialist, Certificado OCP 10g/11g/12c, OCE RAC10g e Linux 10g. Conhecimentos em Microsoft SqlSever, Mysql e programação web (php,asp).