Я пытаюсь создать скрипт, который синхронизирует таблицы продаж и инвентаризации.Для этого я написал ОБНОВЛЕНИЕ в таблице инвентаризации (в которой имеется 1 запись на элемент инвентаря):
UPDATE TOP (q.QuantitySold) i
SET i.Converted = 1,
i.CartID = q.CartID,
i.ReservedDate = GETDATE()
FROM Inventory i
INNER JOIN
(
SELECT product.ProductID, sales.CartID, COUNT(sales.ID) AS QuantitySold
FROM Products product
INNER JOIN Sales sales ON sales.ProductID = product.ProductID
WHERE <conditions>
GROUP BY product.ProductID, sales.CartID
) q ON q.ProductID = i.ProductID
WHERE i.Converted = 0 AND i.CartID IS NULL
Но это не работает, ошибка говорит, что q.QuantitySold не может быть привязан.
Есть ли способ обновить N записей инвентаря (равных проданному количеству) без использования курсора?Я отказываюсь так сдаваться.
Примечание: это упрощенная версия фактического запроса.