Bom dia Pessoal,

Expandindo um pouco mais a minha consulta, para incluir os atendimentos
anteriores a 2009, quando o campo flg_receita ainda não era preenchido,
desenvolvi a query abaixo, onde seleciono os valores máximo e mínimo de um
determinado período, a partir de uma consulta mais ampla.

*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

O que eu 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.





Em 10 de junho de 2013 09:12, Ramiro Pamponet <[email protected]> escreveu:

> Bom dia Galera PG-BR,
>
> Estou querendo incrementar meu programa e gerar, a partir do resultado da
> consulta gerada pelo SQL abaixo, um segundo relatório contendo a data e
> quantidade de receitas (apenas os valores máximo e o mínimo), no mesmo
> relatório, ordenados por data.
>
> --------------------------------------------------------------------------------------------------------------------------------------
> select dat_emissao as Data,
> SUM(CASE WHEN flg_receita='1' THEN 1 ELSE 0 END) as SUS,
> SUM(CASE WHEN flg_receita='2' THEN 1 ELSE 0 END) as PARTICULAR,
> count(flg_receita) as Total
> from cadcvend where flg_receita is not null
> and flg_excluido is null
> and dat_emissao between data_ini ('yyyy-MM-dd') and data_fim ('yyyy-MM-dd')
> group by dat_emissao
> order by dat_emissao
>
> --------------------------------------------------------------------------------------------------------------------------------------
> Alguém teria alguma sugestão?
>
> Agradeço a colaboração de todos!
>
>
>
> Em 3 de junho de 2013 21:03, Tiago Adami <[email protected]> escreveu:
>
>> Em 3 de junho de 2013 20:38, Ramiro Pamponet <[email protected]>
>> escreveu:
>>
>> >
>> > Boa Noite Pessoal,
>> >
>> > Estou querendo montar um relatório no iReport para uma aplicação Java
>> que desenvolvi para capturar a quantidade de receitas do SUS, Particulares
>> e Total por dia, da farmácia onde trabalho. Atualmente minha aplicação
>> apresenta o resultado da consulta ao BD em um jTextArea, de forma
>>  individual, ou seja, uma query para as Receitas SUS, outra as Receitas
>> Particulares e uma terceira para o Total de Receitas. O que eu estou
>> querendo fazer agora é montar um único relatório, em forma de tabela,
>> contendo os campos DATA ; SUS ; PARTICULAR ; TOTAL. Atualmente utilizo o
>> modelo de query abaixo descriminado, onde as linhas precedidas por "--" são
>> as variantes da query. Existe alguma maneira de juntar todas as consultas
>> em um único resultado, sabendo que a coluna "flg_receita" no BD recebe o
>> valor CHAR "1" para receitas SUS e "2" para receitas Particulares. Utilizo
>> o "distinct" para não repetir as datas e o "count" para contar as linhas
>> contendo as regras definidas na cláusula "where" para o tipo de receita.
>> >
>> > QUERY:
>> >
>> > select distinct(dat_emissao) as Data,
>> > -- count(flg_receita) as SUS,
>> > -- count(flg_receita) as Particular,
>> > -- count(flg_receita) as Total
>> > from cadcvend where
>> > -- flg_receita='1' -- SUS
>> > -- flg_receita='2' -- Particular
>> > -- flg_receita is not null -- Total
>> > and
>> > flg_excluido is null -- Eliminar Vendas Excluídas
>> > -- and dat_emissao between data_ini ('yyyy-MM-dd') and data_fim
>> ('yyyy-MM-dd')
>> > group by dat_emissao
>> > order by dat_emissao
>> >
>>
>> Não testei, mas tenta esse aí:
>>
>> select dat_emissao as Data,
>> SUM(CASE WHEN flg_receita='1' THEN 1 ELSE 0 END) as SUS,
>> SUM(CASE WHEN flg_receita='2' THEN 1 ELSE 0 END) as PARTICULAR,
>> count(flg_receita) as Total
>> from cadcvend where flg_receita is not null
>> and flg_excluido is null
>> and dat_emissao between data_ini ('yyyy-MM-dd') and data_fim
>> ('yyyy-MM-dd')
>> group by dat_emissao
>> order by dat_emissao
>>
>> --
>> TIAGO J. ADAMI
>> http://www.adamiworks.com
>> @tiadami
>> _______________________________________________
>> pgbr-geral mailing list
>> [email protected]
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a