Erro Procedure bando de dados

Delphi

22/03/2014

Olá Pessoal.

Eu tenho uma procedure, no qual a sua função é ver se foi uma ENTRADA ou uma SAIDA e atualiza o estoque somando ou diminuindo. Só que só funciona quando eu faço o primeiro registro, quando eu vou colocar um segundo ele da o seguinte erro:

O erro que está acontecendo é este:

Error Message:
----------------------------------------
multiple rows in singleton select.
multiple rows in singleton select.
At procedure 'ENTRADA' line: 9, col: 3
At trigger 'DETALLE_CONFERENCIA_ENTRADA' line: 5, col: 3.


Meu comando SQL:
begin
  select A.ESTOQUE_TEMPORARIO, A.ESTOQUE_REAL, B.MOVIMIENTO
  from PRODUCTO A, CONFERENCIA B, DETALLE_CONFERENCIA C
  where A.ID_PRODUCTO = :ID_PRODUCTO and
        C.ID_CONFERENCIA = B.ID_CONFERENCIA
  into :QTD_TEMPORARIO, :QTD_REAL, :MOVIMIENTO;
  if (:MOVIMIENTO = 'ENTRADA') then
  begin
    update PRODUCTO
    set ESTOQUE_TEMPORARIO = :QTD_TEMPORARIO + :CANTIDAD,
        ESTOQUE_REAL = :QTD_REAL + :CANTIDAD
        where ID_PRODUCTO = :ID_PRODUCTO;
  end
  else
  if (:MOVIMIENTO = 'SAIDA') then
  begin
    update PRODUCTO
    set ESTOQUE_TEMPORARIO = :QTD_TEMPORARIO - :CANTIDAD,
        ESTOQUE_REAL = :QTD_REAL - :CANTIDAD
        where ID_PRODUCTO = :ID_PRODUCTO;
  end
end


Os campos da minha tabela DETALLE_CONFERENCIA, não tem chave primária:

ID_CONFERENCIA INTEGER (FK)
ID_PRODUCTO INTEGER (FK)
ID_MARCA INTEGER (FK)
CANTIDAD FLOAT


Os campos da minha tabela CONFERENCIA:

ID_CONFERENCIA INTEGER (PK)
FECHA DATE
MOVIMIENTO VARCHAR 15


Alguem poderia me ajudar?

Desde já agradecido!
Edson Vilhalba

Edson Vilhalba

Curtidas 0
POSTAR