Problema com connect by level com data

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
  

Mensagemem Qua, 10 Out 2018 3:39 pm

Boas senhores,
Tenho que pegar os dias de um período.
usando o connect by level consegui resolver o problema, mas......
Quando tenho um único registro/período funciona mas para mais de um, começa a duplicar.

No exemplo que irei mostrar o primeiro período duplica o último dia e o segundo triplica todos os dias
Alguém teria uma luz?

Vou exemplificar usando dados fixo com dual...como segue:

select id,di,df,di-1+level dtDia
from
(
--Gerar linha 1
select 1 id, to_date('20/09/2018 13:40:00','dd/mm/yyyy hh24:mi:ss') di
,to_date('21/09/2018 19:25:00','dd/mm/yyyy hh24:mi:ss') df from dual
union all
--Gerar linha 2
select 2 id, to_date('21/09/2018 17:00:00','dd/mm/yyyy hh24:mi:ss') di
,to_date('10/10/2018 10:15:00','dd/mm/yyyy hh24:mi:ss') df from dual
)
CONNECT BY LEVEL <= ((trunc(df) - trunc(di)))+1
order by id,dtDia


Obrigado e t+
xprata
Localização: São Paulo - SP


Voltar para PL/SQL

Quem está online

Usuários navegando neste fórum: Google [Bot] e 5 visitantes