Olá Amigos, estou com uma dúvida referente a como montar a logica de um update com a seguinte situação
Possuo uma tabela chamada PARCEL (referente a dados de parcelas)
onde possuo campos como valor pago, codigo de pessoa, mes de pagamento, ano de pagamento e etc
Porém foi constatado que todos os valores pago do meses 12 devera ser o mesmo que esta em 06
Ou seja
Valor parcela mês 12: 150 reais
Valor parcela mês 06: 100 reais
Deverá haver um update que altere o valor pago de todos os meses 12 para os mesmos valores que estão no mês 06
a questão é que possuo diversos valores em mês 06 para diversas pessoas, que tambem existem no mês 12, mas nao sei como fazer o link para dizer qual valor pago do mês 06 deve entrar no mês 12, atualmente eu estava tentando da seguinte forma:
onde
valpag_prc é o valor pago
tipcar_prc é o tipo de pagamento
codigo_prc é o codigo da pessoa
UPDATE PARCEL
SET VALPAG_PRC = (SELECT A.VALPAG_PRC,
A.CODIGO_PRC
FROM PARCEL AS A
WHERE A.TIPCAR_PRC = 001
AND CONVERT(VARCHAR(10), A.DTPGTO_PRC, 112) >=
'20180101'
AND CONVERT(VARCHAR(10), A.DTPGTO_PRC, 112) <=
'20181231'
AND MESREF_PRC = 06)
WHERE EXISTS (SELECT B.VALPAG_PRC,
B.CODIGO_PRC
FROM PARCEL AS B
WHERE B.TIPCAR_PRC = 001
AND CONVERT(VARCHAR(10), B.DTPGTO_PRC, 112) >= '20180101'
AND CONVERT(VARCHAR(10), B.DTPGTO_PRC, 112) <= '20181231'
AND B.MESREF_PRC = 09)
AND EXISTS (SELECT *
FROM PARCEL AS A
INNER JOIN PARCEL AS B
ON A.CODIGO_PRC = B.CODIGO_PRC
WHERE A.TIPCAR_PRC = 001
AND CONVERT(VARCHAR(10), A.DTPGTO_PRC, 112) >=
'20180101'
AND CONVERT(VARCHAR(10), A.DTPGTO_PRC, 112) <=
'20181231'
AND A.MESREF_PRC = 12)
Como podem ver eu estava declarando o novo valor como referencia o mês 06
e na condição do que seria alterado o mesmo select porém com mês 12, e para fazer o link adicionei mais um select para fazer condição entre os codigos do mês 06 e 12