SQL
Como faço para realizar um select numa tabela onde eu tenho intervalo de dados. Por exemplo:
Eu tenho uma tabela com 50 registros, digamos que o usuários quer realizar uma pesquisa entre os registros 10 a 25...
Como monto uma SQL para este tipo de consulta?
Eu tenho uma tabela com 50 registros, digamos que o usuários quer realizar uma pesquisa entre os registros 10 a 25...
Como monto uma SQL para este tipo de consulta?
Marcela
Curtidas 0
Respostas
Marcelo.c
02/10/2003
SELECT * FROM tabela WHERE codigo BETWEEN 10 AND 25
GOSTEI 0
Edineidaniel
02/10/2003
Olá,
No OnClick do Button
query1.close;
query1.SQL.Clear;
query1.sql.add(´select * from tabela´);
query1.sql.add(´where campo >= :cod1 and campo<=:cod2´);
query1.sql.add(´order by datainicial´);
query1.params[0].AsInteger := StrToInt(Edit1.text);
query1.params[1].AsInteger := StrToInt(Edit2.text);
query1.open;
query1.active:=true;
Ai é so listas esta consulta em um grid...
walew
t+
Edinei
No OnClick do Button
query1.close;
query1.SQL.Clear;
query1.sql.add(´select * from tabela´);
query1.sql.add(´where campo >= :cod1 and campo<=:cod2´);
query1.sql.add(´order by datainicial´);
query1.params[0].AsInteger := StrToInt(Edit1.text);
query1.params[1].AsInteger := StrToInt(Edit2.text);
query1.open;
query1.active:=true;
Ai é so listas esta consulta em um grid...
walew
t+
Edinei
GOSTEI 0
Marcela
02/10/2003
Isso não dá certo porque na tabela não tem codigo sequencial....
GOSTEI 0
Edineidaniel
02/10/2003
.....
Qual é o campo chave de sua tabela....????
Ou melhor quais os campos que vc possui em sua tabela...????
que sabe com esses dados adicionais podemos formular um SQL diferente...
t+
Edinei
Qual é o campo chave de sua tabela....????
Ou melhor quais os campos que vc possui em sua tabela...????
que sabe com esses dados adicionais podemos formular um SQL diferente...
t+
Edinei
GOSTEI 0
Marcela
02/10/2003
Os campos da minha tabela são:
Cod da estação, que não é sequencial (número grande e varialvel)
Data e Hora, estes são chaves primárias
O restante são dados de leitura que não me interessam...
Cod da estação, que não é sequencial (número grande e varialvel)
Data e Hora, estes são chaves primárias
O restante são dados de leitura que não me interessam...
GOSTEI 0
Edineidaniel
02/10/2003
Marcela,
Deve a haver algum dados importante em meio a sua tabela para q vc queira selecionar dados do meio...
Não encontrei outra maneira de te ajudar...
quem sabe tente o código acima, mas com o campo data ou hora, tanto faz, é só mudar o valor dos parâmetros....
t+
Edinei
Deve a haver algum dados importante em meio a sua tabela para q vc queira selecionar dados do meio...
Não encontrei outra maneira de te ajudar...
quem sabe tente o código acima, mas com o campo data ou hora, tanto faz, é só mudar o valor dos parâmetros....
t+
Edinei
GOSTEI 0
Fava
02/10/2003
Veja o exemplo abaixo... variando-se o comando select (alterando-se a clausula where, order by, etc...) pode-se obter os últimos X registros, etc... etc...
CREATE PROCEDURE RETORNA_X_REGISTROS (NUM_ROWS INTEGER)
RETURNS (lista de campos que voce quer que retorne)
AS
declare variable counter integer;
begin
counter = 0;
for select (campos que voce quer que retorne)
from Sua_Tabela
order by campo_chave_primária
into
:Variaveis de retorno que recebem o valor dos campos acima
do begin
if (:counter >= :NUM_ROWS) then exit;
suspend;
counter = counter + 1;
end
end
PS: O Firebird e o Interbase 6.5 possuem clausulas especiais para o SELECT que permitem a paginação dos dados retornados
CREATE PROCEDURE RETORNA_X_REGISTROS (NUM_ROWS INTEGER)
RETURNS (lista de campos que voce quer que retorne)
AS
declare variable counter integer;
begin
counter = 0;
for select (campos que voce quer que retorne)
from Sua_Tabela
order by campo_chave_primária
into
:Variaveis de retorno que recebem o valor dos campos acima
do begin
if (:counter >= :NUM_ROWS) then exit;
suspend;
counter = counter + 1;
end
end
PS: O Firebird e o Interbase 6.5 possuem clausulas especiais para o SELECT que permitem a paginação dos dados retornados
GOSTEI 0
Marcelo.c
02/10/2003
Dê uma olhada em:
http://delphiforum.icft.com.br/forum/viewtopic.php?t=23490
http://delphiforum.icft.com.br/forum/viewtopic.php?t=23490
GOSTEI 0