Em 29 de dezembro de 2015 12:48, Thiago H. Barreto < [email protected]> escreveu:
> Eu utilizei como exemplo as tabelas > > Create CREATE TABLE wfiscal.di00800 na verdade seria wfiscal.di00358 > CREATE TABLE wfiscal.cd00000 e wfiscal.cd00358 > > 2015-12-29 15:46 GMT-02:00 Thiago H. Barreto < > [email protected]>: > >> Boa tarde caros colegas. >> >> Estou precisando da ajuda, pois estou quebrando a cabeça e não esta >> saindo nada... >> >> Preciso atualizar um campo em uma tabela na minha base de dados. >> >> A estrutura é a seguinte das tabelas: >> >> CREATE TABLE wfiscal.di00800 >> ( >> iddipi character varying(40) NOT NULL, >> idnota character varying(40), >> idclassificacao integer, >> desccomplementar character varying(20), >> CONSTRAINT di00800_idxprimario PRIMARY KEY (iddipi)); >> >> CREATE TABLE wfiscal.cd00000 >> ( >> idcodigo character varying(40) NOT NULL, >> dtinicial timestamp without time zone, >> dtfinal timestamp without time zone, >> cdcodigo integer, >> cdclassificacao character varying(20), >> nmdescricao character varying(53), >> CONSTRAINT cd00000_idxprimario PRIMARY KEY (idcodigo)); >> >> Preciso atualizar o campo d*esccomplementar* da tabela *di00358* com o >> valor do campo *nmdescricao *da tabela *cd00358*, ressaltando que o >> tamanho do campo *nmdescricao *da tabela *cd00358* tem 53 caracteres e o >> campo desccomplentar tem apenas 20, então tenho que utilizar a função >> *substr*, porem ai que vem o problema, como vou fazer para realizar esta >> atualização? >> >> Eu utilizei o comando para atualizar os produtos com o valor XXX, porem >> quero saber como faço para atualizar os valores com os valores do campo de >> outra tabela e ainda pegar apenas os 20 primeiros caracteres, eu li que a >> função SELECT SUBSTR (Campo_tabela,1,20) ela pega o valor do campo da >> posição inicial 1 até a 20, porem utilizar este comando pegando os dados de >> uma outra tabela.... >> >> Segue script. >> >> update wfiscal.di00800 set desccomplementar = 'XXX' where idclassificacao >> in(select distinct(DI.idclassificacao) from wfiscal.di00800 as DI, >> wfiscal.cd00800 as CD where DI.idclassificacao = CD.cdcodigo >> and DI.data_movimento = '01-11-2015') >> >> Desde já, muito obrigado. >> >> >> >> >> >> >> >> >> *Lembre-se de que ao evitar o desperdício, além de economizar dinheiro >> com papel e tinta, você também ajuda o nosso planeta. Bom para seu bolso, >> melhor para o mundo!* >> > > > > > > > > > > > *Lembre-se de que ao evitar o desperdício, além de economizar dinheiro com > papel e tinta, você também ajuda o nosso planeta. Bom para seu bolso, > melhor para o mundo!* > > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > Tentou algo assim??: update wfiscal.di00800 set desccomplementar = substr(wfiscal.*cd00358.**nmdescricao, 1, 20) * from wfiscal.*cd00358 * *where* wfiscal.di00800.cdcodigo = wfiscal.*cd00358*.idclassificacao and wfiscal.di00800.data_movimento = '2015-11-01' Qualquer coisa, dá uma olhada em http://www.postgresql.org/docs/9.4/static/sql-update.html -- Marcos Thomaz da Silva Analista de Tecnologia da Informação <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail> Este e-mail foi enviado por um computador sem vírus e protegido pelo Avast. www.avast.com <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail> <#DDB4FAA8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
