Ir para conteúdo
Seja Membro VIP - Remova Banners de Propagandas, Tenha Liberado Qualquer Download, Além de Acessos em Áreas Exclusivas!! ×
Quer acesso a todas as Áreas do Fórum, até aquelas só para membros VIPs? Também quer poder baixar qualquer ARQUIVO? ×

Ajuda SQL<b> (Resolvido)</b>


Rhicky

Posts Recomendados


  • Tópicos Que Criei:  120
  • Tópicos/Dia:  0.02
  • Meu Conteúdo:  400
  • Conteúdo/Dia:  0.06
  • Reputação:   0
  • Pontos/Conquistas:  3.200
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  44

Pessoal,

Estou tentando atualizar a tabela PEVENTO, via SQL no Banco de Dados e não estou conseguindo. A instrução que estou utilizando é:

UPDATE PEVENTO SET SUBSTRING(INCACUMULADOR,13,1) = '*' WHERE SUBSTRING(INCACUMULADOR,13,1) = ''

O que poder ser ? Alguém pode ajudar ?

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  51
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  1.005
  • Conteúdo/Dia:  0.16
  • Reputação:   12
  • Pontos/Conquistas:  5.527
  • Conteúdo Resolvido:  0
  • Dias Ganho:  8
  • Status:  Offline
  • Idade:  51

Ricky,

Acredito que deva ser:

UPDATE PEVENTO SET INCACUMULADOR) = ' *' WHERE SUBSTRING(INCACUMULADOR,13,1) = ''

Faça os testes...

OBS: Não testei...

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  900
  • Tópicos/Dia:  0.14
  • Meu Conteúdo:  8.845
  • Conteúdo/Dia:  1.34
  • Reputação:   310
  • Pontos/Conquistas:  106.599
  • Conteúdo Resolvido:  0
  • Dias Ganho:  195
  • Status:  Offline
  • Idade:  52
  • Dispositivo:  Windows

Ricky,

Acredito que deva ser:

UPDATE PEVENTO SET INCACUMULADOR) = ' *' WHERE SUBSTRING(INCACUMULADOR,13,1) = ''

Faça os testes...

OBS: Não testei...

Não... não é isso não.

Se vc deseja mudar apenas a posição 13, deverá manter o que tem nas demais, antes e depois...

Seria isso aqui:

UPDATE PEVENTO

SET INCACUMULADOR = SUBSTRING(INCACUMULADOR,1,12)

+ '*'

+ SUBSTRING(INCACUMULADOR,14,Len(INCACUMULADOR-13))

WHERE SUBSTRING(INCACUMULADOR,13,1) = '' or SUBSTRING(INCACUMULADOR,13,1) = ' '

and CODCOLIGADA = '1' -- não esquecer de testar a coligada também...

O comando do Jorge acima, faz com que, perca-se o que está já setado até a posição 13...

Creio que ele esqueceu deste detalhe.

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  51
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  1.005
  • Conteúdo/Dia:  0.16
  • Reputação:   12
  • Pontos/Conquistas:  5.527
  • Conteúdo Resolvido:  0
  • Dias Ganho:  8
  • Status:  Offline
  • Idade:  51

Bem Lembrado ....

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  25
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  310
  • Conteúdo/Dia:  0.05
  • Reputação:   1
  • Pontos/Conquistas:  1.796
  • Conteúdo Resolvido:  0
  • Dias Ganho:  1
  • Status:  Offline
  • Idade:  49

Não... não é isso não.

Se vc deseja mudar apenas a posição 13, deverá manter o que tem nas demais, antes e depois...

Seria isso aqui:

UPDATE PEVENTO

SET INCACUMULADOR = SUBSTRING(INCACUMULADOR,1,12)

+ '*'

+ SUBSTRING(INCACUMULADOR,14,Len(INCACUMULADOR-13))

WHERE SUBSTRING(INCACUMULADOR,13,1) = '' or SUBSTRING(INCACUMULADOR,13,1) = ' '

and CODCOLIGADA = '1' -- não esquecer de testar a coligada também...

O comando do Jorge acima, faz com que, perca-se o que está já setado até a posição 13...

Creio que ele esqueceu deste detalhe.

Isso mesmo :tks:

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  120
  • Tópicos/Dia:  0.02
  • Meu Conteúdo:  400
  • Conteúdo/Dia:  0.06
  • Reputação:   0
  • Pontos/Conquistas:  3.200
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  44

Não... não é isso não.

Se vc deseja mudar apenas a posição 13, deverá manter o que tem nas demais, antes e depois...

Seria isso aqui:

UPDATE PEVENTO

SET INCACUMULADOR = SUBSTRING(INCACUMULADOR,1,12)

+ '*'

+ SUBSTRING(INCACUMULADOR,14,Len(INCACUMULADOR-13))

WHERE SUBSTRING(INCACUMULADOR,13,1) = '' or SUBSTRING(INCACUMULADOR,13,1) = ' '

and CODCOLIGADA = '1' -- não esquecer de testar a coligada também...

O comando do Jorge acima, faz com que, perca-se o que está já setado até a posição 13...

Creio que ele esqueceu deste detalhe.

Jair,

Tentei executar a instrução confome você descreveu, porém deu o seguinte retorno:

Msg 245, Level 16, State 1, Line 1

Conversion failed when converting the varchar value ' * ** ** *' to data type int.

Será que falta alguma coisa ?

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  134
  • Tópicos/Dia:  0.02
  • Meu Conteúdo:  1.225
  • Conteúdo/Dia:  0.19
  • Reputação:   2
  • Pontos/Conquistas:  7.400
  • Conteúdo Resolvido:  0
  • Dias Ganho:  1
  • Status:  Offline
  • Dispositivo:  Windows

Ja cadastrou na tabela dinamica ?

Se quando for branco e para colocar '*' ,entao nao nem precisa do Where, ja coloca '*' em todos. (Da posição 13, é claro.)

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  900
  • Tópicos/Dia:  0.14
  • Meu Conteúdo:  8.845
  • Conteúdo/Dia:  1.34
  • Reputação:   310
  • Pontos/Conquistas:  106.599
  • Conteúdo Resolvido:  0
  • Dias Ganho:  195
  • Status:  Offline
  • Idade:  52
  • Dispositivo:  Windows

UPDATE PEVENTO

SET INCACUMULADOR = SUBSTRING(INCACUMULADOR,1,12)

+ '*'

+ SUBSTRING(INCACUMULADOR,14,Len(INCACUMULADOR)-13)

WHERE SUBSTRING(INCACUMULADOR,13,1) = '' or SUBSTRING(INCACUMULADOR,13,1) = ' '

and CODCOLIGADA = '1' -- não esquecer de testar a coligada também...

Errei os parentesis de lugar...

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  900
  • Tópicos/Dia:  0.14
  • Meu Conteúdo:  8.845
  • Conteúdo/Dia:  1.34
  • Reputação:   310
  • Pontos/Conquistas:  106.599
  • Conteúdo Resolvido:  0
  • Dias Ganho:  195
  • Status:  Offline
  • Idade:  52
  • Dispositivo:  Windows

Rhicky, esse campo INCACUMULADOR na verdade tem 32 posições, acabei de olhar na tabela. Acho que é melhor fixar isso e não usar o LEN como falei no comando acima...

então, ficaria assim:

UPDATE PEVENTO

SET INCACUMULADOR = SUBSTRING(INCACUMULADOR,1,12)

+ '*'

+ SUBSTRING(INCACUMULADOR,14,18)

WHERE SUBSTRING(INCACUMULADOR,13,1) = '' or SUBSTRING(INCACUMULADOR,13,1) = ' '

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  120
  • Tópicos/Dia:  0.02
  • Meu Conteúdo:  400
  • Conteúdo/Dia:  0.06
  • Reputação:   0
  • Pontos/Conquistas:  3.200
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  44

Rhicky, esse campo INCACUMULADOR na verdade tem 32 posições, acabei de olhar na tabela. Acho que é melhor fixar isso e não usar o LEN como falei no comando acima...

então, ficaria assim:

UPDATE PEVENTO

SET INCACUMULADOR = SUBSTRING(INCACUMULADOR,1,12)

+ '*'

+ SUBSTRING(INCACUMULADOR,14,18)

WHERE SUBSTRING(INCACUMULADOR,13,1) = '' or SUBSTRING(INCACUMULADOR,13,1) = ' '

Jair,

Agradeço muito sua atenção para esse meu problema, mas a instrução enviada não está funcionando corretamente. O que eu quero é que ela verifique se o acumulador 13 - PIS está desmarcado e se estiver que ele marque o acumulador.

Porém, o que está ocorrendo é que a instrução está marcando apenas os eventos que já possuem algum acumulador marcado e os que não tem nenhum acumulador marcado ela não procede a marcação.

Será que tem como corrigir isso ?

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  134
  • Tópicos/Dia:  0.02
  • Meu Conteúdo:  1.225
  • Conteúdo/Dia:  0.19
  • Reputação:   2
  • Pontos/Conquistas:  7.400
  • Conteúdo Resolvido:  0
  • Dias Ganho:  1
  • Status:  Offline
  • Dispositivo:  Windows

Se tivesse marcado esses eventos manualmente, essa questao ja nao estaria resolvida faz tempo ?

O que incide pis sao proventos, geralmente incidem inss tambem....

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  900
  • Tópicos/Dia:  0.14
  • Meu Conteúdo:  8.845
  • Conteúdo/Dia:  1.34
  • Reputação:   310
  • Pontos/Conquistas:  106.599
  • Conteúdo Resolvido:  0
  • Dias Ganho:  195
  • Status:  Offline
  • Idade:  52
  • Dispositivo:  Windows

Acrescente no Where...

or SUBSTRING(INCACUMULADOR,13,1) is null or INCACUMULADOR is null

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  900
  • Tópicos/Dia:  0.14
  • Meu Conteúdo:  8.845
  • Conteúdo/Dia:  1.34
  • Reputação:   310
  • Pontos/Conquistas:  106.599
  • Conteúdo Resolvido:  0
  • Dias Ganho:  195
  • Status:  Offline
  • Idade:  52
  • Dispositivo:  Windows

E ai, resolveu ? Finalizou isso ?

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  120
  • Tópicos/Dia:  0.02
  • Meu Conteúdo:  400
  • Conteúdo/Dia:  0.06
  • Reputação:   0
  • Pontos/Conquistas:  3.200
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline
  • Idade:  44

Resolver, não resolveu não... mas pode fechar a discussão. Vou alterar manulamente mesmo.

Obrigado.

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  900
  • Tópicos/Dia:  0.14
  • Meu Conteúdo:  8.845
  • Conteúdo/Dia:  1.34
  • Reputação:   310
  • Pontos/Conquistas:  106.599
  • Conteúdo Resolvido:  0
  • Dias Ganho:  195
  • Status:  Offline
  • Idade:  52
  • Dispositivo:  Windows

Esquisito... não funcionou o que passei ao final ? Bom, de qualquer forma estou fechando, mas era pra funcionar de repente com a ultima coisa que te falei.

Tópico Resolvido.

O mesmo foi marcado como resolvido por não haver mais nada a resolver.

Qualquer coisa, alguma dúvida ou questionamento sobre o assunto, pode postar novamente que analisaremos, ou se preferir, favor entrar em contato com a administração ou moderação, através do link: Administradores e Moderadores

Se preferir, mande um email para admin@forumrm.com.br

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  134
  • Tópicos/Dia:  0.02
  • Meu Conteúdo:  1.225
  • Conteúdo/Dia:  0.19
  • Reputação:   2
  • Pontos/Conquistas:  7.400
  • Conteúdo Resolvido:  0
  • Dias Ganho:  1
  • Status:  Offline
  • Dispositivo:  Windows

Foi que falei. Se fizesse manualmente (O usuario que tem que fazer) ja estaria resolvido faz tempo.

Link para comentar
Compartilhar em outros sites

Participe da conversa

Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.

Visitante
Responder esse tópico

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

  Only 75 emoji are allowed.

×   Seu link foi automaticamente inserido no corpo do post.   Exibir como um link

×   Seu conteúdo anterior foi restaurado.   Limpar conteúdo do editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Criar Novo...

Informação Importante

Usando este site, você concorda com nossos Termos de Uso e nossa Política de Privacidade.