[firebase-br] Duvida, existe comando, forma de fazer???
Eduardo Bahiense
eduardo em icontroller.com.br
Dom Abr 20 19:38:50 -03 2008
Olá Felipe
Digamos que a última seqüência do seu cadAstro seja 10.000. Se você
tivesse uma tabela com somente um campo SEQID você poderia fazer uma
query where not exists().
CREATE TABLE SEQUENCIAS (SEQID INTEGER);
Abaixo, um *protótipo* de stored procedure e uma query.
CREATE PROCEDURE POPULATESEQUENCIAS;
DECLARE VARIABLE MINIMO INTEGER;
DECLARE VARIABLE MAXIMO INTEGER;
SELECT COALESCE(MAX(SEQID),0)+1 FROM SEQUENCIAS INTO :MINIMO;
SELECT COALESCE(MAX(SEQUENCIA),0) FROM PRODUTOS INTO :MAXIMO;
FOR I = :MINIMO TO :MAXIMO DO
BEGIN
INSERT INTO SEQUENCIAS (SEQID) VALUES(:MINIMO);
:MINIMO = MINIMO +1;
END
******************************
EXECUTE PROCEDURE POPULATESEQUENCIAS;
SELECT SEQID A FROM SEQUENCIAS WHERE NOT EXISTS(SELECT 1 PRODUTOS WHERE
SEQUENCIA = A.SEQID)
Abs
Eduardo
FireBird FireBird escreveu:
> Pessoal, tenho uma duvida, mas imagino que não tenha como resolver de forma
> com comando SQL, ou Stored Procedure, mas como meu conhecimento e limitado.
>
> E o seguinte:
>
> Tenho um cadastro de Produto, com seqüência 1,2,3,4,5,6,8,9,10,15,17.
>
> Gostaria de saber se existe uma forma de saber os pulos que esta seqüência
> deu, olhando este seqüência, acima vemos que faltou o intervalo:
> 11,12,13,14,16.
>
>
>
>
>
> Valeu pessoal, espero que tenha conseguido expressar corretamente minha
> duvida.
>
>
> At,
> Felipe
> ______________________________________________
> 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