在此完整查询中如何执行代码

时间:2019-04-24 20:58:34

标签: sql-server

我有一个产品表和一个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函数,我认为我们永远不会在这里获得null值。

我也很困惑如何执行此查询。像首先,我们将所有A或r值相加,然后从总Sold(S)值中减去,或者一一取一,取A或R的每个值,然后相减,最后求和。谁能解释代码。

0 个答案:

没有答案