[英]MySQL query to subtract two groups of values
我有一張用於“發票明細”的表格,我想獲得商品編號的net_sales
,可以通過從退貨中減去銷售額來實現。
現在的問題是:我可以做一個查詢這樣的計算,通過獲取SUM( qty
)的type
=“S”和SUM( qty
)的type
=“R”然后減去他們獲得該項目的#net_sales? 還可以有一個以上的項目來獲取net_sales嗎?
+------+------+------+
| Item | Qty | Type |
+------+------+------+
| 1132 | 1 | S |
| 1132 | 2 | S |
| 1132 | 3 | R |
+------+------+------+
我要做的是在查詢中選擇第一組“ S”,然后在另一個查詢中選擇第二組“ R”,然后將它們相減,如果要處理的項目很多,這將導致性能下降!
如果您用不同的方式SUM()
問題,這變得容易:代替SUM()
處理所有S
,然后減去所有R
的總和,您同樣可以計算所有項的總和,其中R
是負數的標記:
SELECT
`Item`,
SUM(IF(`Type`='S', `Qty`, -1*`Qty`)) AS total
FROM
`invoice_details`
WHERE
-- your criteria here, e.g.
`Item`=1132
GROUP BY `Item`
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.