各位前輩們好,小弟被一個問題難住了也爬了許多文但是還是毫無頭緒,只好厚著臉皮發問了。
我先陳述一下我的問題。
我現在在記錄庫存紀錄的方式是
物料 / 數量 / (進=0/出=1)
物料A / 5 / 0
物料A / 3 / 1
物料B / 6 / 0
物料C / 5 / 0
物料B / 1 / 1
大概紀錄的方式像LOG一樣
如果今天是單一物品呼叫出來小弟是會做的,但是我現在面臨的情境是我需要把物料變成如下呈現
物料 / 數量
物料A / 2
物料B / 5
物料C / 5
把所有紀錄做加總
請求各位前輩給我一個方向就好,不管是在資料庫或著是後端能達到目標的操作方向都好,不求答案。
感激不盡!
方向是 GROUP BY, SUM, CASE
不求答案就不要往下看囉...
CREATE TABLE table1
([material] varchar(1), [amount] int, [inout] int)
;
INSERT INTO table1
([material], [amount], [inout])
VALUES
('A', 5, 0),
('A', 3, 1),
('B', 6, 0),
('C', 5, 0),
('B', 1, 1)
;
SELECT material,
SUM(CASE WHEN inout=0 THEN amount ELSE -1*amount END) AS amt
FROM table1
GROUP BY material