Selecao DevMedia QUERO SER PRIME

Fórum consultando por data #334686

14/12/2006

0

bom dia
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

Marquinhospe

Responder

Posts

14/12/2006

Arc

pq vc não usa a clausula WHERE na query [b:8cf6104014]select codmembent from entradas[/b:8cf6104014], tipo
select codmembent from entradas
where data >= :datainicial and data <= :datafinal
ou
where data between :datainicial and :datafinal
:?:


Responder

Gostei + 0

14/12/2006

Marquinhospe

arc tentei mas da a seguinte mensagem de erro:
´01/06/2006´ is not a valid integer value

se vc tiver outra maneira em q possa me ajudar, agradeço muito

marcos andré


Responder

Gostei + 0

14/12/2006

Arc

[b:5e8b7d0d96]is not a valid integer value [/b:5e8b7d0d96]

a data não é um valor inteiro valido , !!!!!!!!!

vc ja verificou o DataType do seu parametro ?


Responder

Gostei + 0

14/12/2006

Arc

o campo date pode ser convertido para float, a parte inteira desse float representa a quantidade de dias da data inicial do seu so até hj, talvez ele esteja considerando esse numero de dias


Responder

Gostei + 0

15/12/2006

Marquinhospe

kra fiz da maneira q vc falou mas continua dando a mesma mensagem de erro. quando peço p/ consultar pelo campo dataent no formato date sempre dar este erro. ñ consigo fazer esta consulta sempre dar o bendito erro de data invalida.
se tiver alguma rotina em q eu possa comparar c/ a minha eu agradeço
valeu


Responder

Gostei + 0

15/12/2006

Joao Marcos

Caro amigo eu vejo duas formas para você consultar.

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;


Responder

Gostei + 0

02/01/2007

Marquinhospe

galera ja tentei essas formas q vcs passaram mas nada.
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


Responder

Gostei + 0

02/01/2007

Aroldo Zanela

Colega,

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;



Responder

Gostei + 0

02/01/2007

Marquinhospe

as variaveis dataini e datafin declaro como o q?
acredito q seja aí o meu erro


Responder

Gostei + 0

03/01/2007

Aroldo Zanela

as variaveis dataini e datafin declaro como o q? acredito q seja aí o meu erro

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.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar