none
Update comparando campos da mesma tabela RRS feed

  • Pergunta

  • Mestres, Eu estou com um probleminha, como estou engatinhando ainda no conhecimento, espero que me ajudem.

    Abaixo tem um update que eu preciso fazer, Eu tenho que atualizar o campo B1_DESC, conforme o Where.

    UPDATE SB1010 SET B1_DESC = B1.B1_DESC FROM SB1010 B1, SB1010 B2
    WHERE B1.B1_FILIAL = '06'
    AND B1.B1_DESC <> B2.B1_DESC
    AND B1.B1_COD = B2.B1_COD
    AND B1.D_E_L_E_T_ = ''
    AND B2.D_E_L_E_T_ = ''
    AND B2.B1_FILIAL NOT LIKE '01'
    AND B2.B1_FILIAL NOT LIKE '03'
    AND B1.B1_FILIAL NOT LIKE '01'
    AND B1.B1_FILIAL NOT LIKE '03'

    quarta-feira, 10 de outubro de 2012 18:00

Respostas

  • mas voce vai atualizar a coluna = ela mesma ? mesmo com o where o registro sempre vai continuar sendo ele mesmo, não irá mudar nada...de qualque maneira o problema do ambiguo resolve como abaixo:

    UPDATE B1 
    SET B1.B1_DESC = B2.B1_DESC 
    FROM SB1010 B1, SB1010 B2
     WHERE B1.B1_FILIAL = '06'
     AND B1.B1_DESC <> B2.B1_DESC
     AND B1.B1_COD = B2.B1_COD
     AND B1.D_E_L_E_T_ = ''
     AND B2.D_E_L_E_T_ = ''
     AND B2.B1_FILIAL NOT LIKE '01'
     AND B2.B1_FILIAL NOT LIKE '03'
     AND B1.B1_FILIAL NOT LIKE '01'
     AND B1.B1_FILIAL NOT LIKE '03' 


    Alexandre Matayosi Conde Mauricio. Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    quarta-feira, 10 de outubro de 2012 18:27

Todas as Respostas

  • Lenadro, a sintaxe esta certa, qual o problema do update ?

    Alexandre Matayosi Conde Mauricio. Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    quarta-feira, 10 de outubro de 2012 18:11
  • Mensagem 8154, Nível 16, Estado 1, Linha 1
    Tabela 'SB1010' ambígua.

    Eu achei o raciocínio perto do que seria certo, mas não aceita, o erro está acima!

    quarta-feira, 10 de outubro de 2012 18:23
  • mas voce vai atualizar a coluna = ela mesma ? mesmo com o where o registro sempre vai continuar sendo ele mesmo, não irá mudar nada...de qualque maneira o problema do ambiguo resolve como abaixo:

    UPDATE B1 
    SET B1.B1_DESC = B2.B1_DESC 
    FROM SB1010 B1, SB1010 B2
     WHERE B1.B1_FILIAL = '06'
     AND B1.B1_DESC <> B2.B1_DESC
     AND B1.B1_COD = B2.B1_COD
     AND B1.D_E_L_E_T_ = ''
     AND B2.D_E_L_E_T_ = ''
     AND B2.B1_FILIAL NOT LIKE '01'
     AND B2.B1_FILIAL NOT LIKE '03'
     AND B1.B1_FILIAL NOT LIKE '01'
     AND B1.B1_FILIAL NOT LIKE '03' 


    Alexandre Matayosi Conde Mauricio. Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    quarta-feira, 10 de outubro de 2012 18:27
  • Fantástico Alexandre. Muito, muito, muito obrigado!

    Era isso, eu não sabia que poderia usar desta maneira, o que eu queria ficou assim e está corretíssimo!

    UPDATE B2 SET B2.B1_DESC = B1.B1_DESC FROM SB1010 B1, SB1010 B2
    WHERE B1.B1_FILIAL = '06'
    AND B1.B1_COD = B2.B1_COD

    AND B1.B1_DESC <> B2.B1_DESC

    AND B1.D_E_L_E_T_ = ''
    AND B2.D_E_L_E_T_ = ''
    AND B2.B1_FILIAL NOT LIKE '01'
    AND B2.B1_FILIAL NOT LIKE '03'
    AND B1.B1_FILIAL NOT LIKE '01'
    AND B1.B1_FILIAL NOT LIKE '03'

    Obrigado!!!!



    • Editado Leandro Terra quarta-feira, 10 de outubro de 2012 18:49
    quarta-feira, 10 de outubro de 2012 18:47
  •     Ok, qualquer duvida só postar...

        abs.


    Alexandre Matayosi Conde Mauricio. Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    quarta-feira, 10 de outubro de 2012 18:52