gpt4 book ai didi

sql - 如何编写SQL来级联累积数据行?

转载 作者:行者123 更新时间:2023-12-04 06:48:31 25 4
gpt4 key购买 nike

我在 DB 中有一个工作计划如下。例如,第一行表示团队 A 在 6 月 (SP1006) 有 10 小时的工作要做。

团队冲刺工作时间
1006 10
1007 20
1008 30
1009 40
乙 1008 50
乙 1009 60
乙 1010 70

我想将其推导出如下形式来表示:每个月末,根据工作计划,还剩下多少小时可以完成。如您所见,派生表的字段也依赖于原始数据表。

团队 SP1005 SP1006 SP1007 SP1008 SP1009 SP1010
100 90 70 40 0 0
乙 180 180 180 130 70 0

我正在尝试在 SQL Server 2000 上执行此操作。这对我来说真的很难。有人可以提供一些帮助吗?非常感谢!

编辑:或者你可以忽略行到列的转换部分(我知道怎么做),只专注于累积部分。

最佳答案

为积累部分use a cursor .除非结果集非常小(可能要处理 <100 行),否则您可以使用三角形连接。

SELECT t1.Team, t1.Sprint,g.wh-SUM(t2.WorkHours)
FROM tbl t1 JOIN tbl t2 ON t1.Team = t2.Team AND t2.Sprint <= t1.Sprint
JOIN
(SELECT SUM(WorkHours) AS wh, Team FROM tbl GROUP BY Team) g ON t1.Team=g.Team
GROUP BY t1.Team, t1.Sprint,g.wh

但是随着行数的增加,三角形连接所需的工作量呈指数增长。

关于sql - 如何编写SQL来级联累积数据行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3447494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com