ERRO NA SETENÇA

Firebird

04/11/2016

TENHO QUE ATUALIZAR NA TABELA PESSOA O CAMPO TIPO CALCULO PARA CONTRIBUIENTE AONDE EM OUTRA TABELA CHAMADA DOCUMENTO BUSCA A INFORMAÇÃO QUE SO DEVE ATUALIZAR NA TABELA AONDE TIVER NO CAMPO TIPO=Ie NA TABELA PESSOA TEM UM CAMPO ID E NA TABELA DOCUMENTO TEM UM CAMPO PESSOAID QUE E O MESMO NUMERO COLOQUEI PARA BUSCAR ESSA INFORMAÇÃ AONDE ID FOSSE = PESSOAID SEGUE O COMANDO E O ERRO QUE ESTA GERANDO

ERRO:Multiple rows in singleton select.

UPDATE PESSOA P
set P.TIPOCALCULO = 'Contribuinte'
WHERE(SELECT D.TIPO FROM DOCUMENTO D WHERE P.ID=D.PESSOAID)='Ie';
Henrique

Henrique

Curtidas 0

Respostas

Luiz Santos

Luiz Santos

04/11/2016

Henrique.

Esse erro está dizendo que estão sendo retornadas várias linhas onde deveria ter uma só.
Tenta verificar esse SELECT na cláusula WHERE, e veja o que ele retorna.

Grande abraço
GOSTEI 0
Jones Granatyr

Jones Granatyr

04/11/2016

Opa! Provavelmente o select abaixo está retonando mais de um registro. No final onde tem o 'le', não deveria ter também um AND?

SELECT D.TIPO FROM DOCUMENTO D WHERE P.ID=D.PESSOAID)='Ie';
GOSTEI 0
Raylan Zibel

Raylan Zibel

04/11/2016

Seria isso?


UPDATE PESSOA set TIPOCALCULO = 'Contribuinte' 
WHERE ID IN ( 

SELECT DISTINCT D.PESSOAID FROM DOCUMENTO D WHERE D.TIPO = 'Ie' 

);

GOSTEI 0
POSTAR