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

Responder a