consulta de datas via sq1l em tabela paradox

Delphi

13/03/2013

Prezados,

Estou precisando de um relatorio em delphi 7, usando tabela PARADOX com um campo de data (DtNasc). Preciso selecionar neste relatorio os registros de um determinado mês (aniversariantes no mês "X"). Tenho pouco conhecimento em SQL. Por favor me ajudem. estou tentando a seguinte rotina que retorna erro:


Dtm_Secre.qMembros_o.Close;
Dtm_Secre.qMembros_o.Sql.Clear;
Dtm_Secre.qMembros_o.Sql.Add('Select EXTRACT(MONTH FROM DTNASC) = 3 from MEMBROS );
Dtm_Secre.qMembros_o.ExecSql;
Dtm_Secre.qMembros_o.Open;

Se possível, gostaria também de uma orientação em como ordenar este resultado pelo dia do mês.

obrigado

Gilberto Santana
Gilberto Moreira

Gilberto Moreira

Curtidas 0

Respostas

Evandro Sanz

Evandro Sanz

13/03/2013

Boa Tarde,

Pelo que entendi o sql ficaria assim sendo que DE E ATÉ são paramentros onde você ira digitar as datas

select campos_que _deseja from membros
where DTNASC BETWEEN :DE AND :ATE


Espero ter ajudado.
GOSTEI 0
Gilberto Moreira

Gilberto Moreira

13/03/2013

prezado, desta forma não me atende, pois teria que passar uma data inicial e uma final. Preciso que a consulta me retorne TODOS que estão dentro de um determinado mês, por exemplo: aniversariantes do mes de março. A resposta deverá contemplar todos os dias de todos os anos...

GOSTEI 0
Evandro Sanz

Evandro Sanz

13/03/2013

SELECT * FROM MEMBROS
where MONTH(DTNASC) = 12

No lugar do doze voce coloca o mês desejado!
Tente assim!
GOSTEI 0
Perivaldo Martins

Perivaldo Martins

13/03/2013

Tente assim:
with Queryx do
begin
  Close;
SQL.Clear;
SQL.Add('SELECT * FROM MEMBROS WHERE MONTH(DTNASC) = :nMES');
SQL.ParamByName('nMES').AsInteger := StrToInt(nMes.Text);
Open;
end;

É só uma idéia, substitua Queryx por seu componente de acesso, nMes.Text seria um Edit ou DBEdit, veja qual atende a sua necessidade.


Boa sorte e bons códigos!
GOSTEI 0
Gilberto Moreira

Gilberto Moreira

13/03/2013

Valeu sua orientação; muito obrigado.

Agora tenho outra pergunta,

Qual o operador devo utilizar numa consulta SQL para NÃO RETORNAR determinado titulo de um campo:

Tenhos vários cargos no campo CARGO entre eles "sem cargo". Quero filtrar para retornar todos os cargos, exceto "sem gargo".

Estou usando: "select * from MEMBROS where CarEcles <> "SEM CARGO" Order By NOME

´Ta retornando erro token >

Pode me ajudar?
GOSTEI 0
Perivaldo Martins

Perivaldo Martins

13/03/2013

Valeu sua orientação; muito obrigado.

Agora tenho outra pergunta,

Qual o operador devo utilizar numa consulta SQL para NÃO RETORNAR determinado titulo de um campo:

Tenhos vários cargos no campo CARGO entre eles "sem cargo". Quero filtrar para retornar todos os cargos, exceto "sem gargo".

Estou usando: "select * from MEMBROS where CarEcles <> "SEM CARGO" Order By NOME

´Ta retornando erro token >

Pode me ajudar?


Teste o código abaixo:
select * from MEMBROS where CarEcles != "SEM CARGO" Order By NOME


Boa sorte e bons códigos!
GOSTEI 0
Gilberto Moreira

Gilberto Moreira

13/03/2013

Muito obrigado novamente. funcionou perfeito.

Por oportuno, tem endereço de alguma apostila mais completa de SQL aplicado ao paradox para me passar?

Obrigado
GOSTEI 0
Perivaldo Martins

Perivaldo Martins

13/03/2013

Muito obrigado novamente. funcionou perfeito.

Por oportuno, tem endereço de alguma apostila mais completa de SQL aplicado ao paradox para me passar?

Obrigado


Infelizmente não, mas você pode encontrar muita coisa sobre SQL na NET.

Boa sorte e bons códigos!
GOSTEI 0
POSTAR