Pessoal,
Tenho numa tabela com vários registros, cada registro tem uma data x. Eu preciso calcular sysdate - datax, porém tem que trazer a quantidade desconsiderando sáb (7) e dom (1).
Alguém saberia me ajudar?
Desde já, obrigado
QUANTIDADE DE DIAS ENTRE DUAS DATAS SEM CONSIDERAR SAB E DOM
- dr_gori
- Moderador
- Mensagens: 5024
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Eu tive a seguinte idéia:
Veja, ele vai buscar todos os dias de segunda a sexta, entre 01-jan e 20-jan: (daí é só fazer um count).
Não sei se essa é a melhor forma, mas parece que funciona Lembrando que ele ta pegando de HOJE até 1000 dias atras apenas.
select dt, to_char(dt,'d')
from
(select trunc(sysdate+1)-level dt
from dual connect by level <=1000
) x
where dt >= '01-jan-2009'
and dt <= '20-jan-2009'
and to_char(dt,'d') not in (1,7)
SQL> select dt, to_char(dt,'d')
2 from
3 (select trunc(sysdate)-level dt
4 from dual connect by level <=1000
5 ) x
6 where dt >= '01-jan-2009'
7 and dt <= '20-jan-2009'
8 and to_char(dt,'d') not in (1,7)
9 /
DT T
--------- -
20-JAN-09 3
19-JAN-09 2
16-JAN-09 6
15-JAN-09 5
14-JAN-09 4
13-JAN-09 3
12-JAN-09 2
09-JAN-09 6
08-JAN-09 5
07-JAN-09 4
06-JAN-09 3
05-JAN-09 2
02-JAN-09 6
01-JAN-09 5
14 rows selected.
SQL>
-
- Rank: Estagiário Pleno
- Mensagens: 6
- Registrado em: Qui, 12 Mar 2009 4:53 pm
- Localização: PORTO ALEGRE
Diego Bernardes
Thomas,
A contagem está ok. O problema é que eu não consigo montar o select inserindo minha lista de datas nesta variável.
Ex da tabela que tenho:
Pra cada registro eu preciso deste count
Não sei se me fiz entender.
Desde já, obrigado pela ajuda!
A contagem está ok. O problema é que eu não consigo montar o select inserindo minha lista de datas nesta variável.
Ex da tabela que tenho:
select ID, DATAX, (VARIÁVEL)
Não sei se me fiz entender.
Desde já, obrigado pela ajuda!
-
- Rank: Estagiário Pleno
- Mensagens: 6
- Registrado em: Qui, 12 Mar 2009 4:53 pm
- Localização: PORTO ALEGRE
Diego Bernardes
Consegui fazer o select do jeito que eu queria:
Thomas, muito obrigado pela ajuda! Abraços!
select X.CASO, X.DATA_RECEBIMENTO,
(
select count(dt) ATRASO
from
(select trunc(sysdate+1)-level dt
from dual connect by level <=1000
) x
where dt >= X.DATA_RECEBIMENTO
and dt <= sysdate
and to_char(dt,'d') not in (1,7)
) ATRASO
from TABELA X
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 20 visitantes