我有一个表“事务”,其中有ProductID(int),TransactionType(boolean),Qty(int)等字段。
在我们购买时,TransactionType为True, 虽然我们正在销售,但TransactionType为False ..
Id Type Qty
1 true 3
1 true 9
1 False 2
如果我购买12件产品1,则
并且售出2个产品数量1,
那我怎样才能让股票剩余......?
答案 0 :(得分:1)
select ProductID,
sum(iif(TransactionType = 1, Qty, -Qty)) as total
from Transactions
group by ProductID
答案 1 :(得分:1)
试试这个:
SELECT ProductId,
SUM(CASE WHEN TransactionType = 1 THEN Qty ELSE -Qty END)
FROM Transactions
GROUP BY ProductId
答案 2 :(得分:0)
您计算总和,但您需要一个案例陈述来将数量解释为正面或负面,而不是总和数量:
select id, sum(Qty * case when type = 'true' then 1 else -1 end) as sum_qty
from transactions
group by id;