Как код выполняется в этом полном запросе - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть таблица продуктов и ProductStockTransactions (SKU, StockingCode, TransactionDate, TransactionQuantity). Каждый столбец обязателен. PST является дочерней таблицей, а product является родительской таблицей.

A = Добавить, R = Возврат, S = продано

Q-- Возвращает количество товара на складе . **

SELECT amtInStock = (
            SELECT ISNULL(SUM(T1.transactionQuantity), 0)
            FROM ProductStockTransactions AS T1
            WHERE T1.SKU = Product.SKU
                AND T1.stockingCode IN ('A', 'R')
        ) - (
            SELECT ISNULL(SUM(T1.transactionQuantity), 0)
            FROM ProductStockTransactions AS T1
            WHERE T1.SKU = Product.SKU
                AND T1.stockingCode IN ('S')
        )

Я не могу понять, почему здесь используется эта функция ISNULL, и я думаю, что здесь мы никогда не получим нулевое значение.

Я также запутался, как выполняется этот запрос. Как и вначале, мы суммируем все значения A или r, а затем вычитаем из общего значения Sold (S) или одно за другим, берем каждое значение A или R, а затем вычитаем его, а затем суммируем, наконец. Может кто-нибудь объяснить код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...