Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ramiro Pamponet

Query com Subquery no Postgres com MÁX() e MÍN() p/ Relatório iReport

Recommended Posts

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.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente :

 

 

--informa a qtd por data

select 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

--maximas
select *
from (select 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)
where vendas = (select max(vendas)
                from (select 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))

--minimas    
select *
from (select 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)
where vendas = (select min(vendas)
                from (select 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))

--tudo

select *
from (select 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)
where vendas = (select max(vendas)
                from (select 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))
union all    
select *
from (select 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)
where vendas = (select min(vendas)
                from (select 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))

 


Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.