none
Uma ajudinha em uma SQL por favor BD MySql RRS feed

  • Pergunta

  •  

    Quero concatenar 3 campos de uma tabela e fazer o update em 1 campo de uma segunda tabela.

    Construi essa SQL mas não esta funcionando corretamente

     

    update CLIENTES set OBS =(select CONCAT(obs_1,' ',obs_2, ' ' ,obs_3)  from cli)

     

    Agradesço qq ajuda desde já

    quinta-feira, 26 de julho de 2007 21:12

Todas as Respostas

  • Acho melhor você criar uma Stored Procedure e executá-la para ter seu resultado, algo assim:

     

    DECLARE @OBS CHAR(100)

    SELECT CONCAT(OBS_1,' ',OBS_2,' ',OBS_3) INTO @OBS FROM CLI

    UPDATE CLIENTES SET OBS = @OBS

     

    Vê se resolve.

    quinta-feira, 26 de julho de 2007 23:45
  • Olá Junior,

     

    Primeiramente, para fazer esse tipo de operação envolvendo mais de uma tabela, é necessário que exista alguma ligação entre elas, seja pelo nome, ou um ID.

     

    Imaginamos que existe um campo ID, então poderias fazer desta maneira:

    Code Snippet

    update CLIENTES

    set OBS = CONCAT(obs_1,' ',obs_2, ' ' ,obs_3)

    FROM CLIENTES C

    INNER JOIN CLI ON CLI.IDCLIENTE = C.IDCLIENTE

     

     

    Assim, terás como indicar qual registro corresponde a qual. Se você quiser fazer a ligação atraves de outro campo, apenas subtitua no JOIN.

     

     

    Se tiveres problemas, retorne que lhe ajudaremos.

     

     

    Abraço

     

     

    sexta-feira, 27 de julho de 2007 04:51