Sharma Hussein Ответов: 1

Агрегат может не отображаться в списке set оператора UPDATE.


Я пытаюсь написать запрос, который обновляет количество под рукой для всех товарных позиций, которые у меня есть, когда я совершаю покупку или продажу.
Я получаю следующую ошибку
An aggregate may not appear in the set list of an UPDATE statement

Что я уже пробовал:

UPDATE p
SET p.QuantityOnHand =
    (ISNULL(SUM(ISNULL(b.Qty, 0)), 0) -
     ISNULL(SUM(ISNULL(i.Qty, 0)), 0) -
     ISNULL(SUM(ISNULL(s.Qty, 0)), 0))
FROM Products p

INNER JOIN BillDetails b ON p.ProductId = b.Pid
INNER JOIN InvoiceDetails i ON p.ProductId = i.Pid
INNER JOIN SalesDetails s ON p.ProductId = s.Pid

		    
                    

1 Ответов

Рейтинг:
0

CHill60

Проблема совершенно ясна...вы не можете этого сделать. Попробуйте вместо этого использовать подзапрос.
Пример здесь...Обновление заявление, содержащее совокупность не работает в SQL сервере - переполнение стека [^]