select para copiar campos da mesma tabela

20/01/2016

0

ola, preciso fazer um update numa tabela, conforme uma condição:
o sistema que uso nao tem função para isso (via programa), e preciso destas informações....

tabela: PCTABPR
campos a serem copiados: PERDESCMAX, PERDESCMAXTAB
campos chave: CODPROD, NUMREGIAO,

preciso copiar os 2 campos PERDESCMAX, PERDESCMAXTAB, para todos os CODPROD, da NUMREGIAO =1 para NUMREGIAO = 7

regiao de origem = 1 e região de destino = 7.

alguem consegue me ajudar?

Juliana.
Juliana

Juliana

Responder

Posts

20/01/2016

Jair N.

UPDATE pctabpr a
SET perdescmax = b.perdescmax
, perdescmaxtab = b.perdescmaxtab
FROM pctabpr b
WHERE (b.codprod = a.codprod)
AND (b.numreg = a.numreg + 6)
-- ou
AND (a.numreg = 7)
AND (b.numreg = 1)
Responder

21/01/2016

Juliana

Ola,
fiz este comando

UPDATE PCTABPR a
SET perdescmax = b.perdescmax
, perdescmaxtab = b.perdescmaxtab
FROM PCTABPR b
WHERE (b.CODPROD = 212) AND (a.CODPROD = 212)
AND (a.numreg = 7)
AND (b.numreg = 1);

só que coloquei um codigo de produto pra fazer um teste.... e deu este erro
ORA-00933 SQL COMMAND NOT PROPERLY ENDED

o que sera que esta errado?
Responder

21/01/2016

Camilo Silva

Como é a estrutura completa dessa sua tabela?
Responder

22/01/2016

Juliana

PCTABPR,


chave CODPROD,
chave NUMREGIAO,
PTABELA,
PVENDA,
PERDESCMAX,
PERDESCMAXTAB,
POFERTA,
POFERTATAB,
MARGEM,
DTULTALTPVENDA,
EXCLUIDO,
PTABELA1,
PTABELA2,
PTABELA3,
PTABELA4,
PTABELA5,
PTABELA6,
PTABELA7,
PVENDA1,
PVENDA2,
PVENDA3,
PVENDA4,
PVENDA5,
PVENDA6,
PVENDA7,
CODST,
MARGEM_ESP,
PFRETE,
TABELAEMITIDA,
PERDESCMAXESP,
PERDESCAUTOR,
COTAITEM,
QTDESCAUTOR,
POFERTAAUX,
PERDESCAUTORTAB,
COTAITEMTAB,
QTDESCAUTORTAB,
PERDESCMAXBALCAO,
PERDESCMAXTABBALCAO,
PRECOMINIMOTABELA,
PRECOMINIMOVENDA,
PERDESCFOB,
PTABELAMED,
PVENDAMED,
PTABELAMED1,
PTABELAMED2,
PTABELAMED3,
PTABELAMED4,
PTABELAMED5,
PTABELAMED6,
PTABELAMED7,
PVENDAMED1,
PVENDAMED2,
PVENDAMED3,
PVENDAMED4,
PVENDAMED5,
PVENDAMED6,
PVENDAMED7,
DESCONTAFRETE,
DTINICIOPTABELA,
PTABELAFUTURO,
DTULTALTPTABELAFUTURO,
DTULTALTPTABELA,
PCOMREP1,
PCOMREP2,
PCOMREP3,
PERCACRESCIMOFRETE,
DTEMISSAOETIQ,
NUMSEQATU,
PRECOFAB,
ATUALIZAR,
PTABELAATAC,
PTABELAATAC1,
PTABELAATAC2,
PTABELAATAC3,
PTABELAATAC4,
PTABELAATAC5,
PTABELAATAC6,
PTABELAATAC7,
PVENDAATAC,
PVENDAATAC1,
PVENDAATAC2,
PVENDAATAC3,
PVENDAATAC4,
PVENDAATAC5,
PVENDAATAC6,
PVENDAATAC7,
PRECOANTERIORATAC,
VLACRESFRETEKG,
DTINICIOVALIDADE,
DTFIMVALIDADE,
INDICEPRECO,
DTIMPORTINTEGRACAO,
PERCIPIVENDATAB,
VLPAUTAIPIVENDATAB,
VLIPIPORKGVENDATAB,
PRECOMAXCONSUM,
DTULTATUPVENDA,
DTULTALTERSRVPRC,
PRECOMAXCONSUMTAB,
PERCDESCSIMPLESNAC,
VLSTTAB,
VLST,
CODTRIBPISCOFINS,
PRECOREVISTA,
DTVALPREVISTA,
OBS,
ROTINA,
MATRICULA,
PERDESCMAXIDEALTAB,
PERDESCMAXPOSSIVELTAB,
PERCCOMGARANTIDATAB,
PERDESCMAXAVISTATAB,
PERDESCMAXIDEAL,
PERCCOMGARANTIDA,
PERDESCMAXAVISTA,
PERDESCMAXPOSSIVEL,
VLIPITAB,
VLIPI,
PERCCOM,
CUSTOPRECIFIC,
CUSTOPRECIFICTAB,
VLULTENTMES,
PTABELASEMIMPOSTO1,
PTABELASEMIMPOSTO2,
PTABELASEMIMPOSTO3,
PTABELASEMIMPOSTO4,
PTABELASEMIMPOSTO5,
PTABELASEMIMPOSTO6,
PTABELASEMIMPOSTO7,
PVENDASEMIMPOSTO1,
PVENDASEMIMPOSTO2,
PVENDASEMIMPOSTO3,
PVENDASEMIMPOSTO4,
PVENDASEMIMPOSTO5,
PVENDASEMIMPOSTO6,
PVENDASEMIMPOSTO7,
PTABELAATACSEMIMPOSTO1,
PTABELAATACSEMIMPOSTO2,
PTABELAATACSEMIMPOSTO3,
PTABELAATACSEMIMPOSTO4,
PTABELAATACSEMIMPOSTO5,
PTABELAATACSEMIMPOSTO6,
PTABELAATACSEMIMPOSTO7,
PVENDAATACSEMIMPOSTO1,
PVENDAATACSEMIMPOSTO2,
PVENDAATACSEMIMPOSTO3,
PVENDAATACSEMIMPOSTO4,
PVENDAATACSEMIMPOSTO5,
PVENDAATACSEMIMPOSTO6,
UTILIZARIOLOG,
PVENDAATACSEMIMPOSTO7
Responder

22/01/2016

Juliana

[img]http://arquivo.devmedia.com.br/forum/imagem/471382-20160122-091351.png[/img]


CREATE TABLE PONTOALTO.PCTABPR
(
CODPROD NUMBER (6) DEFAULT NULL NOT NULL,
NUMREGIAO NUMBER (4) DEFAULT NULL NOT NULL,
PTABELA NUMBER (18,6),
PVENDA NUMBER (18,6),
PERDESCMAX NUMBER (10,2),
PERDESCMAXTAB NUMBER (10,2),
POFERTA NUMBER (12,3),
POFERTATAB NUMBER (12,3),
MARGEM NUMBER (6,2),
DTULTALTPVENDA DATE,
EXCLUIDO VARCHAR2 (1),
PTABELA1 NUMBER (18,6),
PTABELA2 NUMBER (18,6),
PTABELA3 NUMBER (18,6),
PTABELA4 NUMBER (18,6),
PTABELA5 NUMBER (18,6),
PTABELA6 NUMBER (18,6),
PTABELA7 NUMBER (18,6),
PVENDA1 NUMBER (18,6),
PVENDA2 NUMBER (18,6),
PVENDA3 NUMBER (18,6),
PVENDA4 NUMBER (18,6),
PVENDA5 NUMBER (18,6),
PVENDA6 NUMBER (18,6),
PVENDA7 NUMBER (18,6),
CODST NUMBER (4),
MARGEM_ESP NUMBER (6,2),
PFRETE NUMBER (10,4),
TABELAEMITIDA VARCHAR2 (1),
PERDESCMAXESP NUMBER (6,3),
PERDESCAUTOR NUMBER (6,3),
COTAITEM NUMBER (6),
QTDESCAUTOR NUMBER (6) DEFAULT 0,
POFERTAAUX NUMBER (12,3),
PERDESCAUTORTAB NUMBER (6,3),
COTAITEMTAB NUMBER (6),
QTDESCAUTORTAB NUMBER (6) DEFAULT 0,
PERDESCMAXBALCAO NUMBER (10,2),
PERDESCMAXTABBALCAO NUMBER (10,2),
PRECOMINIMOTABELA NUMBER (12,3),
PRECOMINIMOVENDA NUMBER (12,3),
PERDESCFOB NUMBER (5,2),
PTABELAMED NUMBER (12,3),
PVENDAMED NUMBER (12,3),
PTABELAMED1 NUMBER (12,3),
PTABELAMED2 NUMBER (12,3),
PTABELAMED3 NUMBER (12,3),
PTABELAMED4 NUMBER (12,3),
PTABELAMED5 NUMBER (12,3),
PTABELAMED6 NUMBER (12,3),
PTABELAMED7 NUMBER (12,3),
PVENDAMED1 NUMBER (12,3),
PVENDAMED2 NUMBER (12,3),
PVENDAMED3 NUMBER (12,3),
PVENDAMED4 NUMBER (12,3),
PVENDAMED5 NUMBER (12,3),
PVENDAMED6 NUMBER (12,3),
PVENDAMED7 NUMBER (12,3),
DESCONTAFRETE VARCHAR2 (1) DEFAULT 'N',
DTINICIOPTABELA DATE,
PTABELAFUTURO NUMBER (12,3),
DTULTALTPTABELAFUTURO DATE,
DTULTALTPTABELA DATE,
PCOMREP1 NUMBER (6,2),
PCOMREP2 NUMBER (6,2),
PCOMREP3 NUMBER (6,2),
PERCACRESCIMOFRETE NUMBER (8,2),
DTEMISSAOETIQ DATE,
NUMSEQATU NUMBER,
PRECOFAB NUMBER (18,6),
ATUALIZAR VARCHAR2 (1) DEFAULT 'S',
PTABELAATAC NUMBER (18,6),
PTABELAATAC1 NUMBER (18,6),
PTABELAATAC2 NUMBER (18,6),
PTABELAATAC3 NUMBER (18,6),
PTABELAATAC4 NUMBER (18,6),
PTABELAATAC5 NUMBER (18,6),
PTABELAATAC6 NUMBER (18,6),
PTABELAATAC7 NUMBER (18,6),
PVENDAATAC NUMBER (18,6),
PVENDAATAC1 NUMBER (18,6),
PVENDAATAC2 NUMBER (18,6),
PVENDAATAC3 NUMBER (18,6),
PVENDAATAC4 NUMBER (18,6),
PVENDAATAC5 NUMBER (18,6),
PVENDAATAC6 NUMBER (18,6),
PVENDAATAC7 NUMBER (18,6),
PRECOANTERIORATAC NUMBER (18,6),
VLACRESFRETEKG NUMBER (12,6),
DTINICIOVALIDADE DATE,
DTFIMVALIDADE DATE,
INDICEPRECO NUMBER (12,8) DEFAULT 1,
DTIMPORTINTEGRACAO DATE,
PERCIPIVENDATAB NUMBER (18,6),
VLPAUTAIPIVENDATAB NUMBER (18,6),
VLIPIPORKGVENDATAB NUMBER (18,6),
PRECOMAXCONSUM NUMBER (18,6),
DTULTATUPVENDA DATE,
DTULTALTERSRVPRC DATE,
PRECOMAXCONSUMTAB NUMBER (18,6) DEFAULT 0,
PERCDESCSIMPLESNAC NUMBER (18,6),
VLSTTAB NUMBER (18,6),
VLST NUMBER (18,6),
CODTRIBPISCOFINS NUMBER (4),
PRECOREVISTA NUMBER (18,6) DEFAULT NULL,
DTVALPREVISTA DATE DEFAULT NULL,
OBS VARCHAR2 (80),
ROTINA VARCHAR2 (40),
MATRICULA NUMBER (8),
PERDESCMAXIDEALTAB NUMBER (10,2),
PERDESCMAXPOSSIVELTAB NUMBER (10,2),
PERCCOMGARANTIDATAB NUMBER (10,2),
PERDESCMAXAVISTATAB NUMBER (10,2),
PERDESCMAXIDEAL NUMBER (10,2),
PERCCOMGARANTIDA NUMBER (10,2),
PERDESCMAXAVISTA NUMBER (10,2),
PERDESCMAXPOSSIVEL NUMBER (10,2),
VLIPITAB NUMBER (18,6),
VLIPI NUMBER (18,6),
PERCCOM NUMBER (10,2),
CUSTOPRECIFIC NUMBER (18,6),
CUSTOPRECIFICTAB NUMBER (18,6),
VLULTENTMES NUMBER (18,6),
PTABELASEMIMPOSTO1 NUMBER (18,6),
PTABELASEMIMPOSTO2 NUMBER (18,6),
PTABELASEMIMPOSTO3 NUMBER (18,6),
PTABELASEMIMPOSTO4 NUMBER (18,6),
PTABELASEMIMPOSTO5 NUMBER (18,6),
PTABELASEMIMPOSTO6 NUMBER (18,6),
PTABELASEMIMPOSTO7 NUMBER (18,6),
PVENDASEMIMPOSTO1 NUMBER (18,6),
PVENDASEMIMPOSTO2 NUMBER (18,6),
PVENDASEMIMPOSTO3 NUMBER (18,6),
PVENDASEMIMPOSTO4 NUMBER (18,6),
PVENDASEMIMPOSTO5 NUMBER (18,6),
PVENDASEMIMPOSTO6 NUMBER (18,6),
PVENDASEMIMPOSTO7 NUMBER (18,6),
PTABELAATACSEMIMPOSTO1 NUMBER (18,6),
PTABELAATACSEMIMPOSTO2 NUMBER (18,6),
PTABELAATACSEMIMPOSTO3 NUMBER (18,6),
PTABELAATACSEMIMPOSTO4 NUMBER (18,6),
PTABELAATACSEMIMPOSTO5 NUMBER (18,6),
PTABELAATACSEMIMPOSTO6 NUMBER (18,6),
PTABELAATACSEMIMPOSTO7 NUMBER (18,6),
PVENDAATACSEMIMPOSTO1 NUMBER (18,6),
PVENDAATACSEMIMPOSTO2 NUMBER (18,6),
PVENDAATACSEMIMPOSTO3 NUMBER (18,6),
PVENDAATACSEMIMPOSTO4 NUMBER (18,6),
PVENDAATACSEMIMPOSTO5 NUMBER (18,6),
PVENDAATACSEMIMPOSTO6 NUMBER (18,6),
UTILIZARIOLOG VARCHAR2 (1) DEFAULT 'N',
PVENDAATACSEMIMPOSTO7 NUMBER (18,6),
CONSTRAINT PCTABPR_PK PRIMARY KEY (NUMREGIAO, CODPROD)
)
TABLESPACE TS_DADOS
LOGGING
NOCACHE
STORAGE (BUFFER_POOL DEFAULT);
Responder

22/01/2016

Jair N.

Juliana este seu banco de dados é SQLServer ou Oracle?
Responder

22/01/2016

Juliana

que eu saiba é oracle.
Responder

22/01/2016

Jair N.

Só que sua "TAG" é SQLServer veja abaixo um exemplo o Oracle é uma merda mesmo nisto...

UPDATE pctabpr a
SET perdescmax = (
SELECT b.perdescmax
FROM pctabpr b
WHERE (b.codprod = a.codprod)
AND (b.numreg = a.numreg - 6))
, perdescmaxtab = (
SELECT b.perdescmaxtab
FROM pctabpr b
WHERE (b.codprod = a.codprod)
AND (b.numreg = a.numreg - 6))
WHERE (a.numreg = 7)
Responder

22/01/2016

Juliana

show de bola!!!
fiz o acerto e ficou certinho... muito obrigada!
Responder

19/02/2016

Helder

Olá pessoal, tudo bem?
Não sei se já conhecem, mas existe uma plataforma para criação de webservices muito eficiente, basta apenas liberar acesso para o banco de dados, e você pode criar uma nova tabela, um novo campo com apenas um clique, talvez ajude muito vocês.
Fica a indicação do Datasocket.
datasocket.co/free
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar