【发布时间】:2015-08-05 06:35:31
【问题描述】:
我在 SQL 中有一个表,我想在其中更新结束日期,该日期应该减去下一行的开始日期的一天。另外条件是该行应该属于同一项目,同一员工具有“相同资源”。
例如,在上表中,第一个记录的项目点火结束日期应该是第二个记录的开始日期减去一天。另一个项目也一样。 我已经为此尝试了自连接,因为我想比较同一张表的两行,但它不适用于我的确切结果:-(
【问题讨论】:
-
您使用的是哪个版本的 SQL Server?
-
在 SQL Server 2012+ 中:试试这个
ISNULL(DATEADD(DAY, 1, LEAD(EXPECTEDSTARETDATE) OVER (PARTITION BY ProjectName ORDER BY EXPECTEDSTARETDATE), EXPECTEDSTARETDATE) EXPECTEDENDDATE;)。 -
m 使用 sql server 2012
-
I've answered a similar question a few days ago,对于 sql server 2008。在 2012 年你最好使用Lead
标签: sql-server