Soma de intervalos

PostgreSQL

09/12/2013

Boa noite pessoALL!

preciso retonar em uma mesma query a soma dos resultados de duas querys, onde cada uma retorna um intervalo.

As querys são:

select sum(age(contador_tempo.fim, contador_tempo.inicio)) as intervalo1
from contador_tempo
where contador_tempo.area = 0 
and contador_tempo.atendimento = 3045
and (contador_tempo.inicio is not null  and contador_tempo.fim is not null)


select sum(age(now(), contador_tempo.inicio)) as intervalo2
from contador_tempo
where contador_tempo.area = 0 
and contador_tempo.atendimento = 3045
and (contador_tempo.inicio is not null  and contador_tempo.fim is null)


Eu preciso do resultado de intervalo1 + intervalo2.

Grato,
Rafael Saldanha

Rafael Saldanha

Curtidas 0

Respostas

Alex Lekao

Alex Lekao

09/12/2013

experimente assim para ver se da certo.

select 
   sum(intervalo1+intervalo2) as intervalo
from (
select 
   sum(age(contador_tempo.fim, contador_tempo.inicio)) as intervalo1
from contador_tempo
where contador_tempo.area = 0 
and contador_tempo.atendimento = 3045
and (contador_tempo.inicio is not null  and contador_tempo.fim is not null)
union 
select 
   sum(age(now(), contador_tempo.inicio)) as intervalo2
from contador_tempo
where contador_tempo.area = 0 
and contador_tempo.atendimento = 3045
and (contador_tempo.inicio is not null  and contador_tempo.fim is null)
) as interval
GOSTEI 0
Rafael Saldanha

Rafael Saldanha

09/12/2013

Alex obrigado pelo apoio!
Com ajuda de outros colegas cheguei a esta solução:

select 
(
  select sum(age(contador_tempo.fim, contador_tempo.inicio)) as intervalo1
  from contador_tempo
  where contador_tempo.area = 0 
  and contador_tempo.atendimento = 3045
  and (contador_tempo.inicio is not null  and contador_tempo.fim is not null)
)
+
(
  select sum(age(now(), contador_tempo.inicio)) as intervalo2
  from contador_tempo
  where contador_tempo.area = 0 
  and contador_tempo.atendimento = 3045
  and (contador_tempo.inicio is not null  and contador_tempo.fim is null)
)


Abraços
GOSTEI 0
Alex Lekao

Alex Lekao

09/12/2013

Nossa Rafael... rssr

pensei que em outra coisa completamente diferente... rsrsr

nem passou pela minha cabeca so somar os dois selects.. rsrsr

viajei... foi mal.. rsrsr

que bom que resolveu. rsrsr

Abraco.

Alex - Lekao
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

09/12/2013

Não seria mais simples fazer assim?
select (res.intervalo2 + res.intervalo1) as intervalo_total
from ( select sum(age(now(), contador_tempo.inicio)) as intervalo2,
 sum(age(contador_tempo.fim, contador_tempo.inicio)) as intervalo1
 from contador_tempo
 where contador_tempo.area = 0 
  and contador_tempo.atendimento = 3045
  and (contador_tempo.inicio is not null  and contador_tempo.fim is null) ) res
GOSTEI 0
POSTAR