Totalizar por data

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
wil.lucas
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 3
Registrado em: Qui, 17 Nov 2011 10:28 am

Boa tarde a todos,

Estou com uma dúvida, pois sou novo de PL/SQL

Tenho o seguinte select

Select
valor1,
valor2,
valor3,
datapg,
dataven,
dataorig

from tab_pag

where
datapg = sysdate -11

Eu gostaria de somar os valores 1, 2 e 3 do range de datas que ela trouxer.

Exemplo de resultado que ele traz atualmente:

valor1 valor2 valor3 datapg dataven dataorig
1 2 3 1/11 2/12 2/12
2 3 4 2/11 3/12 4/12
3 4 5 3/11 4/12 5/12

Como eu faço para somar os valores da datapg de 1/11 até 3/11?
Já coloquei um select separado para somar o valor 3, porém como eu faço para somar e apresentar em uma nova coluna o total da coluna valor1, valor2 e valor3?

Obrigado e abraços

William Lucas
Jota
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 77
Registrado em: Qua, 17 Jun 2009 3:18 pm
Localização: Blumenau - SC
Jonatas Jaqmam Pereira
Analista Desenvolvedor de Sistemas

Bem vido ao fórum cara.

Seguinte, se você não precisar ver as datas pode fazer da seguinte maneira:

Selecionar tudo

Select sum(valor1),
          sum(valor2),
          sum(valor3)
  from tab_pag
where datapg = sysdate -11
Se precisar ver por data de pagamento, pode fazer:

Selecionar tudo

Select sum(valor1),
          sum(valor2),
          sum(valor3),
          datapg
  from tab_pag
where datapg = sysdate -11
group by datapg
rogenaro
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Sex, 30 Mar 2007 7:26 pm
Localização: Londrina - PR
Rafael O. Genaro

Seria isso?

Selecionar tudo

select valor1,valor2,valor3,datapg,dataven,dataorig
, sum( nvl( valor1, 0 ) + nvl( valor2, 0 ) + nvl( valor3, 0 ) ) over ()
from   tab_pag
where  datapg = sysdate -11
wil.lucas
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 3
Registrado em: Qui, 17 Nov 2011 10:28 am

Bom dia,
Nenhuma das duas opções funcionaram, mas acho que não fui tão claro no select.
Ele esta dessa forma, na verdade

Select
valor1,
valor2,
valor3,
datapg,
dataven,
dataorig,
(select sum (valor3)
from tab_pag
where
datapg = sysdate -11) soma

from tab_pag

where
datapg = sysdate -11


Ele esta trazendo uma coluna de soma, mas apenas do valor3, e o que eu preciso também, é da soma dos campos valor1 e valor 2.

Abraços
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Olá Will,

Desculpe, mas acho que a sua explicação ainda não está suficientemente clara.

Seguindo exatamente à risca o que você está pedindo, a querie deveria então ser a seguinte:

Selecionar tudo

SELECT valor1,
       valor2,
       valor3,
       datapg,
       dataven,
       dataorig,
       total.soma1,
       total.soma2,
       total.soma3
  FROM tab_pag,
       (SELECT SUM(valor1) AS SOMA1,
               SUM(valor2) AS SOMA2,
               SUM(valor3) AS SOMA3 
          FROM tab_pag 
         WHERE datapg = SYSDATE-11) total
 WHERE datapg = SYSDATE-11
Tem certeza que deveria ser esta a informação que deseja retornar em sua querie?

Caso não seja, eu recomendo que você coloque o resultado que deseja sair em sua querie, exatamente como você tentou fazer no início desta thread.

Abraços,

Sergio Coutinho
wil.lucas
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 3
Registrado em: Qui, 17 Nov 2011 10:28 am

Olá Sergio,

Segue o resultado que eu desejava...

valor1 valor2 valor3 dtpg dtvenc soma1 soma2 soma3
1 2 3 1/12 30/11 9 12 18
3 4 6 2/12 30/11 9 12 18
5 6 9 3/12 30/11 9 12 18


O where ficaria da seguinte forma

where
dtvenc = 30/11

Abraços
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Will,
Acho que a querie que te passei resolveria este problema.
Dê uma olhada nela. Em caso de dúvidas, poste aquí novamente.
Abraços,
Sergio
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Majestic-12 [Bot] e 13 visitantes