data inicio e final de outra tabela

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
msbalbi
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Dom, 08 Mar 2009 8:54 pm
Localização: Rio de Janeiro - RJ

Gostaria de saber a sintaxe para pegar data_inicio e data_final de uma tabela data_criterio.
E mostrar os dados respeitando o limite da tabela data_criterio.

Assim :

tabela faturamento :

Selecionar tudo

select * from faturamento
where data_nf >= between data_inicio and data_final
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Fala brother, beleza?

Tava quase lá!
Só faltava retirar o maior igual.

Selecionar tudo

SELECT *
  FROM faturamento
 WHERE data_nf BETWEEN data_inicio AND data_final
Qualquer coisa, manda pra gente.
msbalbi
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Dom, 08 Mar 2009 8:54 pm
Localização: Rio de Janeiro - RJ

po brigadao mais tipo essa data_criterio é de outra tabela.
queria referenciar as datas a serem mostradas pela tab_data_criterio
ruevers
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 324
Registrado em: Sex, 02 Jun 2006 1:48 pm
Localização: sp
Contato:

Selecionar tudo

SELECT * 
  FROM faturamento 
 WHERE data_nf >= (select  data_inicio from data_criterio)
 AND data_nf <= (select data_final from data_criterio)
dudu0566
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 74
Registrado em: Seg, 06 Ago 2007 3:59 pm
Localização: Campinas - SP
Eduardo Gomes

vamos ver se entendi:

Selecionar tudo

SELECT *
  FROM DATA_CRITERIO DT_CRI
      ,FATURAMENTO FAT
 WHERE FAT.DATA_NF BETWEEN DT_CRI.DATA_INICIO AND DT_CRI.DATA_FINAL
se estiver trabalhando com as datas no formato data e hora, aconselho usar o trunc

Selecionar tudo

SELECT *
  FROM DATA_CRITERIO DT_CRI
      ,FATURAMENTO FAT
 WHERE TRUNC(FAT.DATA_NF) BETWEEN TRUNC(FDT_CRI.DATA_INICIO) AND TRUNC(FDT_CRI.DATA_FINAL) 
msbalbi
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Dom, 08 Mar 2009 8:54 pm
Localização: Rio de Janeiro - RJ

vlw dudu obrigaddo pela dica.. fiz uns ajustes..

vlw.
RodrigoValentim
Moderador
Moderador
Mensagens: 367
Registrado em: Ter, 25 Mar 2008 3:41 pm
Localização: Salvador - BA
Rodrigo Valentim
Analista de Sistemas
Oracle Developer

Campanha: Faça uma pesquisa antes de perguntar!!!

Só um conselho, a performance cai quando se usa TRUNC nas datas... usa

Selecionar tudo

to_date(to_char(dt,'dd/mm/yyyy'),'dd/mm/yyyy')
Pode ser que agora não influencie muito, porém, pense no futuro.
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Isso é verdade.

Se fosse o caso, seria pensar em criar um índice truncado para essa coluna.

Mas, como o amigo informou, vale se pensar sim!
Responder
  • Informação