Ir para conteúdo

Arquivado

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

Giovane Lopes

Mostrar resultado 0 no count quando não houver registro

Recommended Posts

Uma solução e criar uma sequencia artificial zerada e somar , aqui tem uma solução minha antiga existem outras usando o "connect by", veja se ajuda.

 

https://forum.imasters.com.br/topic/522521-forçar-select-trazer-linha-mesmo-que-sem-valor/?do=findComment&comment=2079146

 

https://asktom.oracle.com/pls/asktom/asktom.search?tag=using-connect-by-level-to-generate-dates-and-times

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu código está assim:

 

SELECT 
 trunc( A.DATA_AGENDADA) AS DATA,
 count(A.DATA_AGENDADA) AS TOTAL
  from os_agenda A
  where A.cod_empresa= 2 
        and A.data_agendada between ''20190901'' and ''20190930''
  group by  trunc( A.DATA_AGENDADA)
  order by trunc( A.DATA_AGENDADA)

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente

 

select data,
       sum(total) total
from
(select to_date('01/09/2019','dd-mm-rrrr')+(level-1) data ,
       0 total
       from dual
       connect by level <= ((to_date('30/09/2019','dd-mm-rrrr')-to_date('01/09/2019','dd-mm-rrrr')) + 1);
union all
SELECT
 trunc( A.DATA_AGENDADA) AS data,
 count(A.DATA_AGENDADA) AS TOTAL
  from os_agenda A
  where A.cod_empresa= 2
        and A.data_agendada between ''20190901'' and ''20190930''
  group by  trunc( A.DATA_AGENDADA)
) group by data
  order by data

 

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.