递归加入 SUM

-1 sql t-sql sql-server common-table-expression

我有以下格式的数据:

FromStateID ToStateID Seconds
1           2         10
2           3         20
3           4         15
4           5         5
Run Code Online (Sandbox Code Playgroud)

我需要以下输出

FromStateID ToStateID Seconds
1           2         10
2           3         20
3           4         15
4           5         5
1           3         10+20
1           4         10+20+15
1           5         10+20+15+5
2           4         20+15
2           5         20+15+5
3           5         15+5
Run Code Online (Sandbox Code Playgroud)

此输出显示所花费的总时间FromStateId,以ToStateId在时间顺序每一个组合。

请帮忙。

Gor*_*off 5

我认为这是一个遵循链接的递归 CTE:

with cte as (
      select FromStateID, ToStateID, Seconds
      from t
      union all
      select cte.FromStateId, t.ToStateId, cte.Seconds + t.Seconds
      from cte join
           t
           on cte.toStateId = t.FromStateId
     )
select *
from cte;
Run Code Online (Sandbox Code Playgroud)

是一个 db<>fiddle。