私はこのクエリを実行使用している場合:発注問題SQL変数
SELECT stockcarddetail.id, stockcarddetail.date, stockcarddetail.quantity, stockcarddetail.pricePerItem
FROM Stockcard
LEFT JOIN staff
ON staff.branchId = stockcard.branchId
LEFT JOIN stockcarddetail
ON stockcarddetail.stockcardId = stockcard.id
WHERE staff.username = 'jemmy.h'
AND stockcarddetail.quantity > 0
AND stockcard.productId = '98924a5f-6afb-11e7-8dd4-2c56dcbcb038'
ORDER BY date ASC
と以下の結果を得る:次に
id | date | quantity| pricePerItem
50 | 2017-10-15 | 10.00 | 10000.00
1 | 2017-10-18 | 20.00 | 10000.00
を、私は、上記の順序に基づい量の累積を計算する必要があります私はこのクエリを実行します。
SELECT a.*, @tot:[email protected] + a.quantity FROM
(SELECT @tot:= 0)b
JOIN
(SELECT stockcarddetail.id, stockcarddetail.date, stockcarddetail.quantity, stockcarddetail.pricePerItem
FROM Stockcard
LEFT JOIN staff
ON staff.branchId = stockcard.branchId
LEFT JOIN stockcarddetail
ON stockcarddetail.stockcardId = stockcard.id
WHERE staff.username = 'jemmy.h'
AND stockcarddetail.quantity > 0
AND stockcard.productId = '98924a5f-6afb-11e7-8dd4-2c56dcbcb038'
ORDER BY date ASC) a
その後、私はこの結果を得た:
id | date | quantity| pricePerItem | @tot
1 | 2017-10-18 | 20.00 | 10000.00 | 20
50 | 2017-10-15 | 10.00 | 10000.00 | 30
はしかし、私が望む結果はこのようなものです:
id | date | quantity| pricePerItem | @tot
50 | 2017-10-15 | 10.00 | 10000.00 | 10
1 | 2017-10-18 | 20.00 | 10000.00 | 30
どのように私は期待される結果を得ることができますか?
EDIT
問題の簡易版は、ここで見つけることができます:私はあなたから理解して何を、あなたは、各エントリの累積合計をしたいhttp://sqlfiddle.com/#!9/f6ad91/3
であるあなたが本当にLEFT JOINをしたい場合は、WHEREにONから右サイドテーブルの条件を移動します。今のところ、定期的な内部結合の結果が得られます。 – jarlh
あなたのコードを理解したところでは、出力は '10,20'になりません。' 20,30'または '10,30'です。 – Ravi
@Ravi私の悪い、私は10,30を意味します。 –