Добавить или вычесть значение в зависимости от значения - PullRequest
0 голосов
/ 31 января 2020

Я использую ASP Net Core API REST и Angular 8. Когда я делаю вставку с переменной "@QTCONTADA", триггер использует это значение для вычитания со значением "@SALDOATUAL", затем он вставляет сумму между этими значениями. Выдает ошибку «Подзапрос возвратил более 1 значения. Это недопустимо, если подзапрос следует =,! =, <, <=,>,> = Или когда подзапрос используется в качестве выражения.»

ALTER TRIGGER [dbo].[TRIGGERACERTOESTOQUE] 
ON [dbo].[ACERTOESTOQUE] 
AFTER INSERT, UPDATE 
AS 
  BEGIN 
      DECLARE @IDITEMESTOQUE AS INT 
      DECLARE @SALDOATUAL AS INT 
      DECLARE @QTCONTADA AS INT 
      DECLARE @SALDOSUBTRAIDO AS INT 

      SELECT @IDITEMESTOQUE = ID_ItemEstoque, 
             @QTCONTADA = QT_Contagem 
      FROM   INSERTED 

      SET @SALDOSUBTRAIDO = @QTCONTADA - (SELECT QT_SaldoAtual 
                                          FROM   ITENSESTOQUE) 

      SELECT @SALDOATUAL = (SELECT QT_SaldoAtual 
                            FROM   ITENSESTOQUE) 

      IF @QTCONTADA > @SALDOATUAL 
        BEGIN 
            UPDATE ITENSESTOQUE 
            SET    QT_SaldoAtual = QT_SaldoAtual + @SALDOSUBTRAIDO 
            WHERE  @IDITEMESTOQUE = ID_ItemEstoque 
        END 
      ELSE 
        BEGIN 
            UPDATE ITENSESTOQUE 
            SET    QT_SaldoAtual = QT_SaldoAtual - @SALDOSUBTRAIDO 
            WHERE  @IDITEMESTOQUE = ID_ItemEstoque 
        END 
  END
...