Ir para conteúdo
Fórum Script Brasil
  • 0

Atualizar sequencia


Marcelo França

Pergunta

Boa tarde estou de volta tive que viajar e estava sem net fez falta.

Bom estou com um problema conseguir criar o script para alterar um pedido especifico, mais não sei como alterar uma faixa por exemplo de pp-00001 a pp000050

se possível gostaria que alguém me ajudasse. segue o script que estou usando.

set @pedido := 'VN-00048541/13';

update vendadet set natureza = 5.403 where sittrib = 010 and numero = @pedido;

update vendadet set natureza = 5.102 where sittrib = 020 and numero = @pedido;

update vendadet set natureza = 5.405 where sittrib = 060 and numero = @pedido;

update vendadet set natureza = 5.102 where sittrib = 000 and numero = @pedido;

update vendadet set icms = 17 where sittrib = 020 and numero = @pedido;

update vendadet set icms = null where sittrib = 010 and numero = @pedido;

update vendadet set icms = null where sittrib = 060 and numero = @pedido;

update vendadet set reducaobase = 41.1760 where sittrib = 020 and numero = @pedido;

update vendadet set reducaobase = null where sittrib = 060 and numero = @pedido;

update vendadet set reducaobase = null where sittrib = 010 and numero = @pedido;

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Boa tarde estou de volta tive que viajar e estava sem net fez falta.

Bom estou com um problema conseguir criar o script para alterar um pedido especifico, mais não sei como alterar uma faixa por exemplo de pp-00001 a pp000050

se possível gostaria que alguém me ajudasse. segue o script que estou usando.

set @pedido := 'VN-00048541/13';

update vendadet set natureza = 5.403 where sittrib = 010 and numero = @pedido;

update vendadet set natureza = 5.102 where sittrib = 020 and numero = @pedido;

update vendadet set natureza = 5.405 where sittrib = 060 and numero = @pedido;

update vendadet set natureza = 5.102 where sittrib = 000 and numero = @pedido;

update vendadet set icms = 17 where sittrib = 020 and numero = @pedido;

update vendadet set icms = null where sittrib = 010 and numero = @pedido;

update vendadet set icms = null where sittrib = 060 and numero = @pedido;

update vendadet set reducaobase = 41.1760 where sittrib = 020 and numero = @pedido;

update vendadet set reducaobase = null where sittrib = 060 and numero = @pedido;

update vendadet set reducaobase = null where sittrib = 010 and numero = @pedido;

Quem é pp-00001 a pp000050? Que atributo(s)?

Link para o comentário
Compartilhar em outros sites

  • 0
PP-00001 é o numero de um pedido, então queria atribuir as mudancas ex. do pedido 00001 a 000050.

Para estabelecer uma sequencia sem que haja perda de performance o ideal seria substituir o - (em PP-00001 e demais aqui não descritos) por 0 (como em PP000050).

Caso não haja possibilidade você pode usar o artifício de substring.

Exemplo:

SELECT * FROM vendadet WHERE SUBSTRING(numero,1,2) = 'PP' AND 
(SUBSTRING(numero),4,5) BETWEEN '00001' AND '00050')

O primeiro substring restringe a busca aos elementos que comecem por 'PP' o segundo informa a sequencia.

O problema neste tipo de pesquisa é que ele é realizado sequencialmente, sem índices, e isto gera TABLE SCAN.

Para saber mais sobre as funções usadas leia o manual do MySQL.

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...