0

我有一张带有“HoursCompleted”的表格,并且每天计算。

CREATE TABLE MyTable
(
    Id INT NOT NULL IDENTITY(1,1),
    PersonId INT NOT NULL,
    DateValue DATE NOT NULL,
    HoursToday DECIMAL(3,2) NOT NULL
)

我需要做的是创建一个显示这些字段的视图,以及一个 TotalHoursForPerson。

所以,我可以从 View 中选择,其中 PersonId = x,它返回:

Id|PersonId|DateValue|HoursToday|Total
1,1,'01-JAN', 5, 5
2,1,'02-JAN', 8, 13
3,1,'03-JAN', 2, 15
etc
etc

但我不确定我是否能得到那个“总计”栏。

4

1 回答 1

2

您尝试实现累积总和,这是一种简洁有效的方法:

CREATE VIEW YourView
AS
SELECT Id, PersonId, DateValue, HoursToday, 
       SUM(HoursToday) OVER (PARTITION BY PersonId ORDER BY Id /* or date */) AS Total
FROM MyTable

然后,查询视图:

SELECT * FROM YourView WHERE PersonId = 42
于 2013-07-21T08:10:50.477 回答