Fórum consultando por data #334686
14/12/2006
0
estou tentando fazer uma consulta entre duas tabelas onde retorne pra mim os nomes q ñ sejam encontrados na 2ª tabela. esse procedimento ja consegui mas existe um detalhe preciso realizar entre um determinado intervalo d tempo. e o campo q armazena a data esta no formato date (estou trabalhando c/ paradox) a rotina p/ consultar é esta:
select nom_memb from membros where cod_memb not in (select codmembent from entradas)
o campo data esta na tabela de entradas
ñ consigo trazer pela data como fazer?
desde ja agradeço
marcos andre
Marquinhospe
Curtir tópico
+ 0Posts
14/12/2006
Arc
select codmembent from entradas
where data >= :datainicial and data <= :datafinal
ou
where data between :datainicial and :datafinal
:?:
Gostei + 0
14/12/2006
Marquinhospe
´01/06/2006´ is not a valid integer value
se vc tiver outra maneira em q possa me ajudar, agradeço muito
marcos andré
Gostei + 0
14/12/2006
Arc
a data não é um valor inteiro valido , !!!!!!!!!
vc ja verificou o DataType do seu parametro ?
Gostei + 0
14/12/2006
Arc
Gostei + 0
15/12/2006
Marquinhospe
se tiver alguma rotina em q eu possa comparar c/ a minha eu agradeço
valeu
Gostei + 0
15/12/2006
Joao Marcos
with QConsulta do
begin
Close;
SQL.Clear;
SQL.Add(´ SELECT NOM_MEMB FROM MEMBROS ´+
´ WHERE COD_MEMB NOT IN (SELECT CODMEMBENT FROM ENTRADAS) ´+
´ AND DATA BETWEEN :DATAINI AND :DATAFIN´);
ParamByName(´DATAINI´).AsDate := StrToDate(edt_DataInicial.Text);
ParamByName(´DATAFIN´).AsDate := StrToDate(edt_DataFinal.Text);
Open;
end;
ou
with QConsulta do
begin
Close;
SQL.Clear;
SQL.Add(´ SELECT NOM_MEMB FROM MEMBROS ´+
´ WHERE COD_MEMB NOT IN (SELECT CODMEMBENT FROM ENTRADAS) ´+
´ AND DATA BETWEEN :DATAINI AND :DATAFIN´);
ParamByName(´DATAINI´).AsString := FormatDateTime(´YYYY/MM/DD´,StrToDate(edt_DataInicial.Text));
ParamByName(´DATAFIN´).AsString := FormatDateTime(´YYYY/MM/DD´,StrToDate(edt_DataFinal.Text));
Open;
end;
Gostei + 0
02/01/2007
Marquinhospe
eu ñ sei se estou errando na declaração das variaveis e na inclusão das mesmas dentro da rotina. ñ sei realmente como fazer p/ buscar um resultado entre duas datas 01/12/2006 e 31/12/2006 por exemplo. se alguem podr ajudar aí fico muito grato.
lembrando q estou trabalhando c/ paradox e o campo data esta no formato date. Preciso d um rotina q traga pra mim todos as pessoas q ñ contribuiram em um determinado mês. estou comparando os dados das pessoas entre duas tabelas membros e entradas amarrando pelo campo codmemb e codmembent comparando entre elas.
aguardo noticias
Gostei + 0
02/01/2007
Aroldo Zanela
Na propriedade SQL de seu componente TQuery, coloque assim:
SELECT NOM_MEMB FROM MEMBROS WHERE COD_MEMB NOT IN (SELECT CODMEMBENT FROM ENTRADAS AND DATA BETWEEN :DATAINI AND :DATAFIN)
Feche a query (Close);
// Atribua os parâmetros nos seguintes formatos:
ParamByName(´DATAINI´).AsDate := FormatDateTime(´MM/DD/YYYY´,StrToDate(edt_DataInicial.Text));
ParamByName(´DATAFIN´).AsDate := FormatDateTime(´MM/DD/YYYY´,StrToDate(edt_DataFinal.Text));
Abra a query (Open);
Particularmente, prefiro usar componentes DateTimePicker (Paleta Win32) para datas ao invés de TEdits, pois simplifica o código.
Exemplo:
ParamByName(´DATAINI´).AsDate := dtp_DataInicial.Date; ParamByName(´DATAFIN´).AsDate := dtp_DataFinal.Date;
Gostei + 0
02/01/2007
Marquinhospe
acredito q seja aí o meu erro
Gostei + 0
03/01/2007
Aroldo Zanela
Colega,
Elas devem ser do mesmo tipo que a sua coluna de dados na tabela. Creio que seja do tipo Date. Certo?
Por favor, tente o exemplo que passei e informe-nos o resultado.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)