Query com Subquery contendo max() e min() para montar relatório no iReport

PostgreSQL

12/06/2013

Bom dia Pessoal,

Criei uma consulta ao BD onde seleciono os valores máximo e mínimo de um determinado período, a partir de uma consulta mais ampla, conforme query abaixo.

select max(vendas), min(vendas) from(
select distinct (dat_emissao) as data, count(dat_emissao) as vendas 
from cadcvend 
where flg_excluido is null 
and num_nf is null
-- and dat_emissao between '2004-06-07' and '2013-12-31' and
group by dat_emissao
-- order by dat_emissao
order by vendas desc) as registro


Porém, o resultado apresentado não satisfaz a minha necessidade, gerando uma coluna com o máximo e outra com o mínimo.

max           min
---------------------
338            2


Mas o que eu realmente quero, é uma forma de "pegar" as datas em que ocorrem os valores máximo e mínimo, e os valores (máximo e mínimo) em uma mesma coluna, ordenados por data, conforme modelo montado abaixo, pois ainda não consegui o mesmo resultado via SQL.

    data               max_min
----------------------------------  
2004-06-07              2
2006-06-05              338


Obrigado a todos que puderam me ajudar.
Ramiro Pamponet

Ramiro Pamponet

Curtidas 0

Respostas

Joel Rodrigues

Joel Rodrigues

12/06/2013

Cara, testa isso aqui e veja no que dá:

select data, vendas as max_min from(
select distinct (dat_emissao) as data, count(dat_emissao) as vendas 
from cadcvend 
where flg_excluido is null
and num_nf is null
group by dat_emissao
order by vendas desc) as registro
where vendas = (select max(vendas) from(
select distinct (dat_emissao) as data, count(dat_emissao) as vendas 
from cadcvend 
where flg_excluido is null
and num_nf is null
group by dat_emissao
order by vendas desc) as registro) or vendas = (select min(vendas) from(
select distinct (dat_emissao) as data, count(dat_emissao) as vendas 
from cadcvend 
where flg_excluido is null
and num_nf is null
group by dat_emissao
order by vendas desc) as registro)
GOSTEI 0
Ramiro Pamponet

Ramiro Pamponet

12/06/2013

Valeu pela força! Funcionou perfeitamente bem. Eu só acrescentei no final o "order by data" para ordenar a consulta por data de emissão. Muito Obrigado!
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

12/06/2013

Show de bola, amigo.
Fico feliz por ter ajudado.
Estou marcando este tópico como Concluído.
GOSTEI 0
POSTAR