Usuário com melhor resposta
Comando Update!

Pergunta
-
Boa tarde Caros Colegas!!!!
Tenho a seguinte situação:
Na tabela VEICULOS tenho os seguinte campos com os respectivos valores:
REGISTRO,NOMEVEICULO, VALORPIS, VALORCOFINS, DATAMOVIMENTACAO, CODIGOTRANSACAO
1, ,SANDERO , 10.00 , 10.00 , 31/01/2012 , 90829
2, ,SANDERO , 0,00 , 0,00 , 31/01/2012 , 90815
O que estou precisando fazer é criar um comando UPDATE que informe os valores existentes dos campos VALORPIS=10,00 E VALORCOFINS=10,00 do REGISTRO =1 para o REGISTRO = 2, ficando desta forma:
REGISTRO,NOMEVEICULO, VALORPIS, VALORCOFINS, DATAMOVIMENTACAO, CODIGOTRANSACAO
1, ,SANDERO , 10.00 , 10.00 , 31/01/2012 , 90829
2, ,SANDERO , 10.00 ,10.00 , 31/01/2012 , 90815
Tentei criar este comando de UPDATE mas não surtiu efeito:
UPDATE VEICULOS SET VALORPIS= VALORPIS, VALORCOFINS= VALORCOFINS WHERE NOMEVEICULO = 'SANDERO' and DATAMOVIMENTACAO= '30/04/2012' and CODIGOTRANSACAO = 90829
Fico no aguardo de uma ajuda de vocês.
Abraços
Marcelo
- Editado Marcelo_Ibanez terça-feira, 14 de fevereiro de 2012 18:37
Respostas
-
Marcelo,
Sua adaptação está errada, tirando minhas conclusões com base na instrução que você postou ficaria assim:
UPDATE B
SET VLRBCR = A.VLRBCR, VLRBPR = A.VLRBPR
FROM E670MOV A
JOIN E670MOV B
ON A.CODBEM = B.CODBEM
AND A.DATMOV = B.DATMOV
WHERE A.CODTNS = 9082Explique qual é a condição para a alteração.
Rafael Godoi Sabadin
http://www.linkedin.com/in/rafaelgodoisabadin
Classifique as respostas. O seu feedback é essencial.- Marcado como Resposta Marcelo_Ibanez quinta-feira, 23 de fevereiro de 2012 12:56
Todas as Respostas
-
Marcelo, boa tarde,
Não conheço a regra de negócio para realizar esta alteração, mas segue um exemplo, espero que ajude.
CREATE TABLE #VEICULOS(
REGISTRO INT,
NOMEVEICULO VARCHAR(50),
VALORPIS NUMERIC(10,2),
VALORCOFINS NUMERIC(10,2),
DATAMOVIMENTACAO DATETIME,
CODIGOTRANSACAO INT)
INSERT INTO #VEICULOS VALUES (1,'SANDERO',10.00 ,10.00,'20120131',90829)
INSERT INTO #VEICULOS VALUES (2,'SANDERO',0.00 ,0.00,'20120131',90815)
UPDATE B
SET VALORPIS = A.VALORPIS,
VALORCOFINS = A.VALORCOFINS
FROM #VEICULOS A
JOIN #VEICULOS B
ON A.NOMEVEICULO = B.NOMEVEICULO
AND A.DATAMOVIMENTACAO = B.DATAMOVIMENTACAO
WHERE A.CODIGOTRANSACAO = 90829
SELECT * FROM #VEICULOSRafael Godoi Sabadin
http://www.linkedin.com/in/rafaelgodoisabadin
Classifique as respostas. O seu feedback é essencial. -
Guilherme o meu comando UPDATE ficou assim:
UPDATE B SET VLRBCR= A.VLRBCR, VLRBPR= A.VLRBPR FROM E670MOV.A JOIN B.E670MOV ON A.CODBEM = B.CODBEM AND A.DATMOV = B.DATMOV WHERE A.CODTNS= 9082
Ao executa-lo não funcionou.
Abraços
Marcelo
- Editado Marcelo_Ibanez terça-feira, 14 de fevereiro de 2012 19:26
-
Marcelo,
Sua adaptação está errada, tirando minhas conclusões com base na instrução que você postou ficaria assim:
UPDATE B
SET VLRBCR = A.VLRBCR, VLRBPR = A.VLRBPR
FROM E670MOV A
JOIN E670MOV B
ON A.CODBEM = B.CODBEM
AND A.DATMOV = B.DATMOV
WHERE A.CODTNS = 9082Explique qual é a condição para a alteração.
Rafael Godoi Sabadin
http://www.linkedin.com/in/rafaelgodoisabadin
Classifique as respostas. O seu feedback é essencial.- Marcado como Resposta Marcelo_Ibanez quinta-feira, 23 de fevereiro de 2012 12:56
-
Marcelo,
Você conseguiu realizar alguma análise e identificar melhor a sua necessidade?
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]