【发布时间】:2018-12-18 08:40:14
【问题描述】:
我有一个这样的 4 列表格:EmployeeID, Date, StartTime, EndTime。前两列不可为空,但其他 2 列是。
我想生成一个报告,并用前几行的 AVG 值填充缺失的 StartTime 和 EndTime。我对 StartTime 列使用以下语句:
ISNULL([StartTime], DATEADD(SECOND, AVG([dbo].[GetTimeInSecondsFromDateTime]([StartTime])) OVER (PARTITION BY [EmployeeID] ORDER BY [Date]), [Date]))
问题是,当我一个接一个地有 2 个 NULL 值时,它们得到相同的值(之前所有值的 AVG),我需要的是:在计算第二个 NULL 值时,前一个是也包括在内(计算出来的)...问题是,我不知道如何实现它。
【问题讨论】:
-
你有多少行?
-
发布样本数据和预期输出
标签: sql sql-server tsql