Давайте сделаем вид, что у нас есть супермаркет. У нас есть таблица под названием Sales, где каждая запись - одна статья), поэтому, если мы сканируем 3 статьи, у нас будет 3 строки со следующими столбцами: ArticleId и Amount, где количество всегда равно 1. И тогда у нас есть таблица под названием «Статьи, columns: ArticleId и AvailableAmount.Подсчитайте столбцы в таблице, где столбцы одинаковы, а затем вычтите из столбца в другой таблице.
Когда продажа завершена, нам нужно подсчитать записи, которые являются одинаковыми в таблице Sales, а затем обновить AvailableAmount с AvailableAmount, вычитаемым с суммой каждой статьи.
Я думаю, что-то вроде этого, но я не знаю, если им правильно мыслить:
UPDATE Articles
SET
AvailableAmount = AvailableAmount - (
Select ArticleId,Count(*) From Sales Group by ArticleId HAVING Count(*) > 1
)
WHERE
ArticleId in(Select distinct ArticleId FROM Sales)