none
Actualizar tabeela com valores de outra... RRS feed

  • Pergunta

  • Boa noite!

     

    Sou nova por aqui e preciso da ajuda se houver alguem que me possa ajudar nisto:

     

    Pretendo fazer um update da tabela pessoascomconsulta coluna [Num_socio), com valores da coluna [nsocio] da tabela

    viewsigatodossocios onde os nomes da duas tabelas coincidem estou utlizando:

     

    UPDATE [Contencioso].[dbo].[PessoascomConsulta]

    SET [Num_Socio] = viewsigatodossocios.nsocio

    WHERE (Num_Socio is null) and (OutroSind is not null) and

    (select s.nsocio,s.nome,(pcc.nome_socio+' '+pcc.apelido)

    from viewsigatodossocios left join pessoascomconsulta pcc on left(s.nome,100)=left(pcc.nome_socio+' '+pcc.apelido,100)))

     

    Sei que existem esses valores pois fiz uma query que deu resultados onde utilizei:

     

    select s.nsocio,s.nome,(pcc.nome_socio+' '+pcc.apelido)nome_Consulta

    from viewsigatodossocios s left join pessoascomconsulta pcc on left(s.nome,100)=left(pcc.nome_socio+' '+pcc.apelido,100)

    where pcc.num_socio is null and pcc.sociooutrosind is null and (pcc.nome_socio+' '+pcc.apelido) is not null

     

    mas quando faço update dá erro:

    Msg 4145, Level 15, State 1, Line 5

    An expression of non-boolean type specified in a context where a condition is expected, near ')'.

    Alguem me pode ajudar

     

     

    sábado, 29 de novembro de 2008 23:03

Respostas

  • Boa noite,

     

    Me confundi um pouco em relação às condições, mas a sintaxe para um UPDATE "cruzado" é:

     

    UPDATE TabelaA SET Campo = <Valor fixo ou de outro campo>

    FROM TabelaA

    <LEFT, INNER> JOIN TabelaB ON <condições>

     

    [ ]s,

     

    Gustavo

    domingo, 30 de novembro de 2008 01:05

Todas as Respostas

  • Boa noite,

     

    Me confundi um pouco em relação às condições, mas a sintaxe para um UPDATE "cruzado" é:

     

    UPDATE TabelaA SET Campo = <Valor fixo ou de outro campo>

    FROM TabelaA

    <LEFT, INNER> JOIN TabelaB ON <condições>

     

    [ ]s,

     

    Gustavo

    domingo, 30 de novembro de 2008 01:05
  • Obrigado pela sua resposta vou ver se resulta

    Pois é um pouco confuso, mas eu tenho duas tabelas:

    viewsigatodossocios com duas colunas nsocio,nome onde estão os dados com os quais pretendo actualizar a tabela pessoascomconsulta na qual eu tenho a coluna N_socio e Nome_socio e Apelido fiz uma query para que me devolvesse o nsocio onde o Nome fosse igual a Nome_socio (left(viewsigatodossocios.nome,100)=left(pessoascomconsulta.nome_socio+' '+pessoascomconsulta.apelido,100). e o resultado foi optimo.

    Filomena

     

    domingo, 30 de novembro de 2008 16:28
  •  

    Gustavo obrigado pela ajuda resultou!
    domingo, 30 de novembro de 2008 18:52