根据信用卡的ID和之前的所有ID查找剩余的项目数

时间:2016-09-09 00:26:58

标签: mysql sql

我有一个t变量,其中包含100个和一个表。

表名credit,它包含以下数据

Id
1
2
3

我希望结果集看起来像这样:

result
99 (100 - 1)
97 (100 - 2 - 1)
94 (100 - 3 - 2 - 1)

到目前为止,我已成功使用以下代码:

set @t=100;
 select @t:=@t-id as result from credit;

有没有办法在不使用变量的情况下执行此操作?

1 个答案:

答案 0 :(得分:1)

这非常简单,您根本不必使用该变量:

SELECT 100-(SELECT SUM(c2.id) FROM credit c2 WHERE c2.id <= c.id)
FROM credit c;

这是一个SQL小提琴: http://sqlfiddle.com/#!9/1fc3c6/6

子查询只是得到所有数字的总和,包括,在信用ID之前。