SQL, como descobrir o numero ausente entre valores?
Boa tarde amigos,
Preciso descobrir os códigos livres entre dois valores sem ter que percorrer o banco.
No meu banco tenho o campo NF.
Preciso descobrir quais notas não existem num valor entre 1 e 100 por exemplo:
1 - Nota Existente
2 - Nota Existente
4 - Nota Existente
O SQL teria que me retornar, nesse caso, que a NF nro 3 não consta no DB.
Tem como?
att
Mario
Preciso descobrir os códigos livres entre dois valores sem ter que percorrer o banco.
No meu banco tenho o campo NF.
Preciso descobrir quais notas não existem num valor entre 1 e 100 por exemplo:
1 - Nota Existente
2 - Nota Existente
4 - Nota Existente
O SQL teria que me retornar, nesse caso, que a NF nro 3 não consta no DB.
Tem como?
att
Mario
Aldus
Curtidas 0
Respostas
.lg.
01/06/2009
Dei a solução pra isso neste tópico:
http://forum.devmedia.com.br/viewtopic.php?t=100549
O meu código te retorna o numero que falta no intervalo. Dê uma lida que você vai entender.
http://forum.devmedia.com.br/viewtopic.php?t=100549
O meu código te retorna o numero que falta no intervalo. Dê uma lida que você vai entender.
GOSTEI 0
Aldus
01/06/2009
Olá,
ainda não seria isso que queria, pois dessa forma teria que ler o banco a procura do código inexistente, e isso dependendo do número de registro torna-se lento.
ainda não seria isso que queria, pois dessa forma teria que ler o banco a procura do código inexistente, e isso dependendo do número de registro torna-se lento.
GOSTEI 0
.lg.
01/06/2009
Pelo que eu sei nenhuma db retorna quais numeros ´inexistentes´ existem num meio intervalo.
Está solução que lhe dei serve para quando vc abre uma tabela no seu programa... acredito que vc n va trazer um milhão de registros num dbgrid para o usuário, neh!? O usuário vai lhe xingar até....
A minha logica se aplica neste caso. Vc abre uma tabela no dbgrid... ( é claro que vc ja tratou o select para amenisar que tipo de info vc quer trazer ) e então quer adicionar um registro de acordo com essa informação que você pegou.
Esse meu código lhe traria o próximo incremento.
É claro que se vc quiser uma rotina que traga todos os itens faltando... essa lógica vai demorar. (a não ser se alguem tenha achado uma maneira rápida. Se achar também quero!!!) O jeito é fazer um procedimento que lhe mostra um progresso.
Desculpe se não pude lhe ajudar. A maneira que achei foi essa. Espero que alguem tenha essa solução. Se tiver, também vou querer. xD
Abraços,
.lg.
Está solução que lhe dei serve para quando vc abre uma tabela no seu programa... acredito que vc n va trazer um milhão de registros num dbgrid para o usuário, neh!? O usuário vai lhe xingar até....
A minha logica se aplica neste caso. Vc abre uma tabela no dbgrid... ( é claro que vc ja tratou o select para amenisar que tipo de info vc quer trazer ) e então quer adicionar um registro de acordo com essa informação que você pegou.
Esse meu código lhe traria o próximo incremento.
É claro que se vc quiser uma rotina que traga todos os itens faltando... essa lógica vai demorar. (a não ser se alguem tenha achado uma maneira rápida. Se achar também quero!!!) O jeito é fazer um procedimento que lhe mostra um progresso.
Desculpe se não pude lhe ajudar. A maneira que achei foi essa. Espero que alguem tenha essa solução. Se tiver, também vou querer. xD
Abraços,
.lg.
GOSTEI 0