我怎样才能在PreviousDay
列中得到结果,即从efdt
列中所有行的日期应该是-1 ?如果efdt
日期为2001-04-02PreviousDay的结果应该是2001-04-01DATEDIFF为334
图片随附,请参考。
您可以使用SQL ServerLEAD
窗口函数efdt"字段,它将在给定两个子句的情况下接受以下值:
PARTITION BY
,表示要处理的组ORDER BY
,它根据一个(或多个)字段施加的顺序决定取哪个值。
SELECT T.*,
DATEDIFF(DAY, efdt, PreviousDay)
FROM (SELECT T1.*,
LEAD(efdt) OVER(PARTITION BY emcd ORDER BY efdt) AS PreviousDay
FROM psf206 T1) AS T
ORDER BY emcd, efdt
点击这里查看演示。
注意:如果你想每行少一天,只需在DATEDIFF
操作后添加-1
(演示)。