saber se periodo cadastrado contem ou esta contido na pesq..
pessoal preciso dar um select que mim diga se o PERIODO QUE ESTOU PESQUISANDO VIA PARAMETRO conten ou esta contido em um PERIODO JÁ CADASTRADO
p isso tenho o seguinte SQl...
SELECT *
FROM PERIODO
WHERE (:DATAINICIAL BETWEEN PERIODO.DATAINICIAL AND PERIODO.DATAFINAL) OR
(:DATAFINAL BETWEEN PERIODO.DATAINICIAL AND PERIODO.DATAFINAL)
soh q esse SQl esta furado pois
PERIODO CADASTRADO ==> 01-11-2004 ATÉ 30-11-2004
PERIODO QUE ESTOU CONSULTANDO ==> 01-01-2004 ATÉ 30-12-2004
o comando SQL n traz nenhum registro, como se n existisse periodo cadastrado nesse intervalo de data (01-01-2004 ATÉ 30-12-2004)
como fasso uma consulta p saber se o periodo q estou consultando contem ou esta contido em um periodo jah cadastrado?
p isso tenho o seguinte SQl...
SELECT *
FROM PERIODO
WHERE (:DATAINICIAL BETWEEN PERIODO.DATAINICIAL AND PERIODO.DATAFINAL) OR
(:DATAFINAL BETWEEN PERIODO.DATAINICIAL AND PERIODO.DATAFINAL)
soh q esse SQl esta furado pois
PERIODO CADASTRADO ==> 01-11-2004 ATÉ 30-11-2004
PERIODO QUE ESTOU CONSULTANDO ==> 01-01-2004 ATÉ 30-12-2004
o comando SQL n traz nenhum registro, como se n existisse periodo cadastrado nesse intervalo de data (01-01-2004 ATÉ 30-12-2004)
como fasso uma consulta p saber se o periodo q estou consultando contem ou esta contido em um periodo jah cadastrado?
Hviana
Curtidas 0
Respostas
Marcus.magalhaes
22/11/2004
Boa tarde.
Não sei se entendi direito sua dúvida, mas seu select está certo.
Usei este script como teste, se a idéia está errada, me fale :
[color=red:72817bb2d9]Create Table TESTE
(
col1intidentity(1, 1)NOT NULL,
col2VarChar(10)NULL,
dtiniDateTimeNULL,
dtfimDateTimeNULL
)
GO
Insert Into TESTE (col2, dtini, dtfim) values (´teste 1´, ´jan 1 2004´, ´jan 31 2004´)
Insert Into TESTE (col2, dtini, dtfim) values (´teste 2´, ´feb 1 2004´, ´feb 28 2004´)
Insert Into TESTE (col2, dtini, dtfim) values (´teste 3´, ´mar 1 2004´, ´mar 31 2004´)
Insert Into TESTE (col2, dtini, dtfim) values (´teste 4´, ´apr 1 2004´, ´apr 30 2004´)
Insert Into TESTE (col2, dtini, dtfim) values (´teste 5´, ´may 1 2004´, ´may 31 2004´)
Insert Into TESTE (col2, dtini, dtfim) values (´teste 6´, ´jun 1 2004´, ´jun 30 2004´)
Insert Into TESTE (col2, dtini, dtfim) values (´teste 7´, ´jul 1 2004´, ´jul 31 2004´)
Insert Into TESTE (col2, dtini, dtfim) values (´teste 11´, ´nov 22 2004´, ´nov 23 2004´)
GO
Declare @var_dtinidatetime,
@var_dtfimdatetime
Set @var_dtini = ´jan 1 2004´
Set @var_dtfim = ´dec 30 2004´
Select ´está contido´, *
From teste
Where (@var_dtini between dtini and dtfim)
Or (@var_dtfim between dtini and dtfim)
Select ´contém´, *
From teste
Where (dtini between @var_dtini and @var_dtfim)
Or (dtfim between @var_dtini and @var_dtfim)
GO
Drop Table TESTE
GO[/color:72817bb2d9]
Att,
Não sei se entendi direito sua dúvida, mas seu select está certo.
Usei este script como teste, se a idéia está errada, me fale :
[color=red:72817bb2d9]Create Table TESTE
(
col1intidentity(1, 1)NOT NULL,
col2VarChar(10)NULL,
dtiniDateTimeNULL,
dtfimDateTimeNULL
)
GO
Insert Into TESTE (col2, dtini, dtfim) values (´teste 1´, ´jan 1 2004´, ´jan 31 2004´)
Insert Into TESTE (col2, dtini, dtfim) values (´teste 2´, ´feb 1 2004´, ´feb 28 2004´)
Insert Into TESTE (col2, dtini, dtfim) values (´teste 3´, ´mar 1 2004´, ´mar 31 2004´)
Insert Into TESTE (col2, dtini, dtfim) values (´teste 4´, ´apr 1 2004´, ´apr 30 2004´)
Insert Into TESTE (col2, dtini, dtfim) values (´teste 5´, ´may 1 2004´, ´may 31 2004´)
Insert Into TESTE (col2, dtini, dtfim) values (´teste 6´, ´jun 1 2004´, ´jun 30 2004´)
Insert Into TESTE (col2, dtini, dtfim) values (´teste 7´, ´jul 1 2004´, ´jul 31 2004´)
Insert Into TESTE (col2, dtini, dtfim) values (´teste 11´, ´nov 22 2004´, ´nov 23 2004´)
GO
Declare @var_dtinidatetime,
@var_dtfimdatetime
Set @var_dtini = ´jan 1 2004´
Set @var_dtfim = ´dec 30 2004´
Select ´está contido´, *
From teste
Where (@var_dtini between dtini and dtfim)
Or (@var_dtfim between dtini and dtfim)
Select ´contém´, *
From teste
Where (dtini between @var_dtini and @var_dtfim)
Or (dtfim between @var_dtini and @var_dtfim)
GO
Drop Table TESTE
GO[/color:72817bb2d9]
Att,
GOSTEI 0
Hviana
22/11/2004
Boa tarde.
Não sei se entendi direito sua dúvida, mas seu select está certo.
Usei este script como teste, se a idéia está errada, me fale :
[color=red:d8ad275d2b]Create Table TESTE
(
col1intidentity(1, 1)NOT NULL,
col2VarChar(10)NULL,
dtiniDateTimeNULL,
dtfimDateTimeNULL
)
GO
Insert Into TESTE (col2, dtini, dtfim) values (´teste 1´, ´jan 1 2004´, ´jan 31 2004´)
Insert Into TESTE (col2, dtini, dtfim) values (´teste 2´, ´feb 1 2004´, ´feb 28 2004´)
Insert Into TESTE (col2, dtini, dtfim) values (´teste 3´, ´mar 1 2004´, ´mar 31 2004´)
Insert Into TESTE (col2, dtini, dtfim) values (´teste 4´, ´apr 1 2004´, ´apr 30 2004´)
Insert Into TESTE (col2, dtini, dtfim) values (´teste 5´, ´may 1 2004´, ´may 31 2004´)
Insert Into TESTE (col2, dtini, dtfim) values (´teste 6´, ´jun 1 2004´, ´jun 30 2004´)
Insert Into TESTE (col2, dtini, dtfim) values (´teste 7´, ´jul 1 2004´, ´jul 31 2004´)
Insert Into TESTE (col2, dtini, dtfim) values (´teste 11´, ´nov 22 2004´, ´nov 23 2004´)
GO
Declare @var_dtinidatetime,
@var_dtfimdatetime
Set @var_dtini = ´jan 1 2004´
Set @var_dtfim = ´dec 30 2004´
Select ´está contido´, *
From teste
Where (@var_dtini between dtini and dtfim)
Or (@var_dtfim between dtini and dtfim)
Select ´contém´, *
From teste
Where (dtini between @var_dtini and @var_dtfim)
Or (dtfim between @var_dtini and @var_dtfim)
GO
Drop Table TESTE
GO[/color:d8ad275d2b]
Att,
faça uma pesquisa que pegue todos os periodos compreendidos entre 01-01-2004 a 30-12-2004 o Select n retornara todos os periodos...qndo era p retornar pois o q estou querendo s todos os periodos cadastrados entre jan e dez.
GOSTEI 0
Marcus.magalhaes
22/11/2004
Bom dia.
Mostra sim, é o Select com a palavra contém, ali mostra todos os períodos cadastrados no intervalo de 01/01/2004 à 30/12/2004.
Att,
Mostra sim, é o Select com a palavra contém, ali mostra todos os períodos cadastrados no intervalo de 01/01/2004 à 30/12/2004.
Att,
GOSTEI 0
Hviana
22/11/2004
Bom dia.
Mostra sim, é o Select com a palavra contém, ali mostra todos os períodos cadastrados no intervalo de 01/01/2004 à 30/12/2004.
Att,
foi mau cara nem prestei atenção!!!!! :oops:
GOSTEI 0