Ir para conteúdo

POWERED BY:

Arquivado

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

Samuel Mattos

[Resolvido] DATE_TRUNC

Recommended Posts

Bom dia, aqui estou com mais uma duvida. É a seguinte no meu postgres eu consigo capturar meu campos normalmente com DATE_TRUNC, com a seguinte SQL.

 

SELECT date_trunc('month', dt_cheg) as dt_atend,
                   count(id_atend) as count_atend,
                   extract(epoch from (AVG(dt_cha - dt_cheg))) as avg_espera,
                   extract(epoch from (AVG(dt_ini - dt_cha))) as avg_desloc,
                   extract(epoch from (AVG(dt_fim - dt_ini))) as avg_atend,
                   extract(epoch from (AVG(dt_fim - dt_cheg))) as avg_total
               FROM view_historico_atendimentos vha
               WHERE dt_cheg >= to_date('2012-02-14 00:00:00','yyyy-mm-dd HH24:MI:ss')
                   AND dt_cheg <= to_date('2012-02-14 23:59:59','yyyy-mm-dd HH24:MI:ss')
                   AND id_stat = 8
                   AND vha.id_uni IN (29)
               GROUP BY dt_atend
               ORDER BY dt_atend

 

No Oralce eu coloco a mesma SQl arrumando o extract tento pegar todas as datas com TRUNC ou ROUND só que como não é uma função de grupo ele não captura se eu colocar o GRUP BY no final ele não me traz somente uma linha como eu quero. eu queria puxar todos os dados e separar por mês. A SQL que estou usando no oracle que funciona sem o "dt_cheg" é a seguinte.

 

 SELECT       
 count(id_atend) as count_atend,
                  AVG(dt_avg(dt_cha,dt_cheg)) as avg_espera,
                   AVG(dt_avg(dt_ini, dt_cha)) as avg_desloc,
                   AVG(dt_avg(dt_fim, dt_ini)) as avg_atend,
                  AVG(dt_avg(dt_fim, dt_cheg)) as avg_total
               FROM view_historico_atendimentos vha
               WHERE vha.dt_cheg >= to_date('2012-02-14 00:00:00','yyyy-mm-dd HH24:MI:ss')
			AND vha.dt_cheg <= to_date('2012-02-14 23:59:59','yyyy-mm-dd HH24:MI:ss')
                   AND id_stat = 8
                   AND vha.id_uni IN (29);

 

Desde já agradeço a atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvi com a seguinte SQl era um erro bobo meu, valeuuu.

 

SELECT TRUNC(dt_cheg, 'MONTH') dataagora,
 count(id_atend) as count_atend,
                  AVG(dt_avg(dt_cha,dt_cheg)) as avg_espera,
                   AVG(dt_avg(dt_ini, dt_cha)) as avg_desloc,
                   AVG(dt_avg(dt_fim, dt_ini)) as avg_atend,
                  AVG(dt_avg(dt_fim, dt_cheg)) as avg_total
               FROM view_historico_atendimentos vha
               WHERE vha.dt_cheg >= to_date('2012-01-14 00:00:00','yyyy-mm-dd HH24:MI:ss')
			AND vha.dt_cheg <= to_date('2012-02-14 23:59:59','yyyy-mm-dd HH24:MI:ss')
                   AND id_stat = 8
                   AND vha.id_uni IN (29)
                   GROUP BY TRUNC(dt_cheg, 'MONTH')
                   ORDER BY TRUNC(dt_cheg, 'MONTH');

 

:wacko:

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.