PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Erro Procedure bando de dados #473686

22/03/2014

0

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

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar