Fórum Pegar apenas o último registro de um Select #45030
21/06/2004
0
Galera, estou criando uma SP, que me manda o último nr de uma OS. Mas eu gostaria de que ao mudar de ano, o sistema zerasse a numeração das OS. Então fiz uma Sp desta forma
CREATE PROCEDURE SP_GERAOS (
EMPCOD INTEGER)
RETURNS (
NROS INTEGER)
AS
DECLARE VARIABLE ULTDATA DATE;
DECLARE VARIABLE HOJE DATE;
begin
/* Pega a ultima Os da empresa Extract(Month from Data_Cadastro) ´today´*/
select Count(O.codos)
From Ordemser O
Where O.empcod =:empcod
into :nros;
/*Pega a data da ultima Os da empresa*/
select O.Fdataos << ERRO ESTÁ AQUI >>
From Ordemser O
where O.empcod =:EMPCOD
order by O.Fdataos desc
into :ULTDATA;
HOJE = ´Today´;
if (Extract(Year from Ultdata) < Extract(Year from Hoje) ) then
begin
nros = 0;
end
suspend;
end
Só q quando vou executar ele me dá a msg:
multiple rows in singlketon select.
E realmente onde eu faço o select O.fdataos, eu estou pedindo para armazenar o resultado desta sql em uma única var. ULTDATA.
O q quero é apenas pegar o ultimo registgro da empresa.
Existe algum comando no sql q permita q eu pegue o ultimo registro?
Ou alguma maneira de eu rescrever esta SP?
Obrigado
CREATE PROCEDURE SP_GERAOS (
EMPCOD INTEGER)
RETURNS (
NROS INTEGER)
AS
DECLARE VARIABLE ULTDATA DATE;
DECLARE VARIABLE HOJE DATE;
begin
/* Pega a ultima Os da empresa Extract(Month from Data_Cadastro) ´today´*/
select Count(O.codos)
From Ordemser O
Where O.empcod =:empcod
into :nros;
/*Pega a data da ultima Os da empresa*/
select O.Fdataos << ERRO ESTÁ AQUI >>
From Ordemser O
where O.empcod =:EMPCOD
order by O.Fdataos desc
into :ULTDATA;
HOJE = ´Today´;
if (Extract(Year from Ultdata) < Extract(Year from Hoje) ) then
begin
nros = 0;
end
suspend;
end
Só q quando vou executar ele me dá a msg:
multiple rows in singlketon select.
E realmente onde eu faço o select O.fdataos, eu estou pedindo para armazenar o resultado desta sql em uma única var. ULTDATA.
O q quero é apenas pegar o ultimo registgro da empresa.
Existe algum comando no sql q permita q eu pegue o ultimo registro?
Ou alguma maneira de eu rescrever esta SP?
Obrigado
Aledeol
Curtir tópico
+ 0
Responder
Posts
21/06/2004
Gandalf.nho
Use a função MAX, que traz o valor mais alto do campo desejado.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)