Ajuda com update usando filtros de outra tabela
Enviado: Qua, 16 Mar 2016 9:34 pm
Boa noite pessoal,
Estou com uma dúvida que talvez seja simples, mas não sou muito bom em SQL e acabou surgindo uma necessidade que preciso resolver via banco.
Há alguns registros que devo alterar, porém para encontra-los utilizo filtros de 2 tabelas, vou usar de exemplo a tabela A e tabela B, o select faço dessa forma:
Ele me traz 841 registros, eu preciso alterar o campo CODESP para '0', se eu faço com FOR UPDATE no fim e tento alterar manualmente um a um na tabela, ele me retorna um erro de ROWID INVÁLIDO.
Tentei fazer dessa forma e não deu certo:
Mas ele retorna um erro pelo que parece que estou tentando colocar mais de 1 resultado por linha do update.
Alguém tem ideia de como posso fazer esse código.
Desde já, agradeço pela ajuda.
Estou com uma dúvida que talvez seja simples, mas não sou muito bom em SQL e acabou surgindo uma necessidade que preciso resolver via banco.
Há alguns registros que devo alterar, porém para encontra-los utilizo filtros de 2 tabelas, vou usar de exemplo a tabela A e tabela B, o select faço dessa forma:
SELECT * FROM A, B
WHERE A.FILIAL = B.FILIAL
AND A.FORNECEDOR = B.FORNECEDOR
AND A.DATAENTRADA > '31/12/2011'
AND A.DATAENTRADA < '01/01/2014'
AND B.CSTPIS = '53'
AND B.CSTCOFINS = '53'
AND B.VALORPIS > 0
AND B.VALORCOFINS > 0
AND A.CODESP = '27'
Tentei fazer dessa forma e não deu certo:
UPDATE A SET A.CODESP = (SELECT 0 FROM A, B
WHERE A.FILIAL = B.FILIAL
AND A.FORNECEDOR = B.FORNECEDOR
AND A.DATAENTRADA > '31/12/2011'
AND A.DATAENTRADA < '01/01/2014'
AND B.CSTPIS = '53'
AND B.CSTCOFINS = '53'
AND B.VALORPIS > 0
AND B.VALORCOFINS > 0
AND A.CODESP = '27')
Alguém tem ideia de como posso fazer esse código.
Desde já, agradeço pela ajuda.