-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在时间顺序每一个组合。
请帮忙。
我认为这是一个遵循链接的递归 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。
| 归档时间: |
|
| 查看次数: |
60 次 |
| 最近记录: |