我有一个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;
有没有办法在不使用变量的情况下执行此操作?
答案 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之前。