我有一个产品表和一个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的每个值,然后相减,最后求和。谁能解释代码。