0

私はテーブルを作成し、このクエリでいくつかのダミーデータを挿入しました:

  CREATE TABLE transaction (
  idtransaction INT NOT NULL AUTO_INCREMENT,
  idproduct INT NOT NULL,
  quantity INT NOT NULL,
  PRIMARY KEY (idtransaction));  

INSERT INTO transaction (idproduct, quantity) VALUES 
(1, 100),
(1, 200),
(2, 120),
(3, 300),
(2, 200),
(2, 200),
(1, 300);

そして、次のようなテーブル結果を取得したい:

|idtransaction| idproduct | quantity | saldo
    1               1         100       100  
    2               1         100       200
    3               2         120       120   
    4               3         300       300
    5               2         200       320
    6               2         200       520
    7               1         300       500

私はこのようなクエリを作成しました:

SELECT  idtransaction,
        idproduct, 
        quantity, 
       (@saldo := @saldo + quantity) as saldo 
FROM    transaction
LEFT JOIN
    (select @saldo :=0) as s on 1=1;

ただし、saldo 履歴の結果は、すべての idproduct に対して計算されます。

すべてのidproductの「saldo」履歴を取得する方法は?

4

1 に答える 1