[firebase-br] Saber se numeração está ausente?
Jaelson
jaelsonwagner em gmail.com
Qua Out 2 19:35:34 -03 2013
Talvez adaptando este código ajude.
-- se a tabela possui os registros 1,2,3,5,6,9,10, o retorno será 4,7,8
execute block
returns (campo integer)
as
declare variable menor integer;
declare variable maior integer;
begin
for
select min(c.referencial), max(c.referencial) from tabela c into
:menor, :maior
do
begin
while (menor <= maior) do
begin
select cc.referencial from tabela cc where cc.referencial =
:menor into :campo;
if (campo <> menor) then
begin
campo = :menor;
suspend;
end
menor = menor + 1;
end
end
end
*Jaelson Wagner da Silva *
*Analista Desenvolvedor de Sistemas/Redes*
On Wed, Oct 2, 2013 at 5:54 PM, José Mauricio Barbisan Zottis <
bzottis em ig.com.br> wrote:
> Uma vez precisei e com a ajuda da lista cheguei a essa procedure, espero
> que seja útil
>
> SET TERM ^ ;
>
> CREATE OR ALTER PROCEDURE OBTER_CODIGO_NULO
> returns (
> codigo_nulo integer)
> as
> declare variable minimo integer;
> declare variable maximo integer;
> declare variable sequencia integer;
> declare variable valor_atual integer;
> begin
> select mIN(F.Codigo_anual) from Far_mtr F where EXTRACT(YEAR FROM
> F.Data_cad) = EXTRACT(YEAR FROM CURRENT_DATE)
> INTO MINIMO;
>
> select max(F.Codigo_anual) from Far_mtr F where EXTRACT(YEAR FROM
> F.Data_cad) = EXTRACT(YEAR FROM CURRENT_DATE)
> INTO MAXIMO;
>
> sequencia = MINIMO;
>
> while (sequencia <= maximo) DO
> begin
> select FIRST 1 F.Codigo_anual from Far_mtr F where
> F.Codigo_anual = :sequencia
> and EXTRACT(YEAR FROM F.Data_cad) = EXTRACT(YEAR FROM
> CURRENT_DATE)
> INTO Valor_atual;
>
> if (:Valor_atual <> :Sequencia) then
> begin
> CODIGO_NULO = Sequencia;
> leave;
> END
> Sequencia = Sequencia + 1;
> end
>
> suspend;
> end^
>
> SET TERM ; ^
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
Mais detalhes sobre a lista de discussão lista