Duduh_Capixaba Postado Junho 20, 2011 Denunciar Share Postado Junho 20, 2011 Olá povo!Busquei na internet e não encontrei uma forma de fazer o que preciso. É o seguinte:Tenho uma tabela de movimentação de produtos, onde gravo seu código e seu númerosequencial na ordem em que ele é inserido, mais ou menos assim:ITEMSEQ | CODPROD1 | 322 | 4013 | 54 | 16Acontece que se o usuário deletar um desses itens inserido na tabela a ordem podeser comprometida com a falta de um número sequencial, assim:ITEMSEQ | CODPROD1 | 322 | 4014 | 16Haveria um modo de eu dar um UPDATE nessa tabela para refazer a ordem dosnúmeros? No meu exemplo acima, o último item (4) ficaria sendo 3. Minha ideiaera usar um GENERATOR junto com o UPDATE, mas acontece que eu receberiamais de um registro por vez e não daria certo. Alguém tem alguma outra ideia? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Duduh_Capixaba Postado Junho 20, 2011 Autor Denunciar Share Postado Junho 20, 2011 (editado) Opa, voltando com a solução!Sim, é possível fazer um UPDATE com um GENERATOR sequenciandoum campo. Vejamos como:No meu caso, minha tabela se chama ESMVSAI1, e suas chaves primáriassão FILIAL, ORDEM e ITEM. Pegando o exemplo que eu dei acima:FILIAL | ORDEM | ITEM1 | 10 | 11 | 10 | 21 | 10 | 4E aplicando essa SQL:UPDATE ESMVSAI1 T1 SET T1.ITEM = ( SELECT FIRST(1) GEN_ID(NOME_DO_GENERATOR, 1) FROM ESMVSAI1 T2 WHERE T2.FILIAL = T1.FILIAL AND T2.ORDEM = T1.ORDEM AND T2.FILIAL = 1 AND T2.ORDEM = 10 ) WHERE T1.FILIAL = 1 AND T1.ORDEM = 10 Temos como resultado: FILIAL | ORDEM | ITEM 1 | 10 | 1 1 | 10 | 2 1 | 10 | 3 Lembrando de zerar seu GENERATOR sempre antes de aplicar essa SQL. Para zerar: SET GENERATOR NOME_DO_GENERATOR TO 0Espero que ajude mais alguém.Vlw vlw!Eduardo Pagoto Editado Junho 20, 2011 por Duduh_Capixaba Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Duduh_Capixaba
Olá povo!
Busquei na internet e não encontrei uma forma de fazer o que preciso. É o seguinte:
Tenho uma tabela de movimentação de produtos, onde gravo seu código e seu número
sequencial na ordem em que ele é inserido, mais ou menos assim:
ITEMSEQ | CODPROD
1 | 32
2 | 401
3 | 5
4 | 16
Acontece que se o usuário deletar um desses itens inserido na tabela a ordem pode
ser comprometida com a falta de um número sequencial, assim:
ITEMSEQ | CODPROD
1 | 32
2 | 401
4 | 16
Haveria um modo de eu dar um UPDATE nessa tabela para refazer a ordem dos
números? No meu exemplo acima, o último item (4) ficaria sendo 3. Minha ideia
era usar um GENERATOR junto com o UPDATE, mas acontece que eu receberia
mais de um registro por vez e não daria certo. Alguém tem alguma outra ideia?
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.