Query com Subquery contendo max() e min() para montar relatório no iReport
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.
Porém, o resultado apresentado não satisfaz a minha necessidade, gerando uma coluna com o máximo e outra com o mínimo.
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.
Obrigado a todos que puderam me ajudar.
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
Curtidas 0
Respostas
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
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
12/06/2013
Show de bola, amigo.
Fico feliz por ter ajudado.
Estou marcando este tópico como Concluído.
Fico feliz por ter ajudado.
Estou marcando este tópico como Concluído.
GOSTEI 0