我有一个基数 30000 和大约 5 行,其中每一行都有不同的数字,我想从查询中的基数中减去它们。
我想实现结果列:
ID| num | result
1 | 1000 | 29000
2 | 1200 | 27800
3 | 2100 | 25700
4 | 4300 | 21400
5 | 1100 | 20300
我有一个基数 30000 和大约 5 行,其中每一行都有不同的数字,我想从查询中的基数中减去它们。
我想实现结果列:
ID| num | result
1 | 1000 | 29000
2 | 1200 | 27800
3 | 2100 | 25700
4 | 4300 | 21400
5 | 1100 | 20300
SET @num := 0;
SELECT
id,
num,
IF(@num = 0,@num := (30000 - num) , @num := (@num - num)) AS `Result`
FROM
`mytable`
试试这个:
SELECT id, num, (30000 - @sum:=@sum+num) AS Result
FROM mytable, (SELECT @sum:= 0) AS A
检查这个SQL FIDDLE 演示