使用SQL的累积剩余部分

时间:2013-01-09 19:04:55

标签: sql sybase

我使用的是旧版本的sybase,它没有像lead这样的关键字。

我想找到累积遗留物。

让我试着用一个例子解释一下。

StartQuantity = 500

Category   Time        Quantity        LeftOver
cat1      10:01:01.000     100           400 
cat1      10:01.01.001     50            350
cat1      10:01:01.002      0            350
cat1      10:01.01.003    100            250
cat1      10:01:03.001    100            150

cat2中提供了类似的行,每个类别的行数是可变的。

请注意,在上面我按时间顺序排列了行。

2 个答案:

答案 0 :(得分:1)

我不知道Sybase是否支持这个,但是在PostgreSQL,Oracle和其他人可以做到

select category,
       time,
       quantity, 
       500 - sum(quantity) over (partition by category order by time) as leftover
from the_unknown_table;
order by category, time

答案 1 :(得分:0)

SELECT类别,SUM(500(数量)) FROM table_name 按类别分组

OR

SELECT类别,(count(1)* 500)-sum(Qunatity) FROM table_name 按类别分组