How can I get the result in the PreviousDay column that the day should be -1 from the day in efdt column for all rows?
If the efdt date is 2001-04-02 the result in PreviousDay should be 2001-04-01 and DATEDIFF is 334
Image attached with it please refer it.
Asked
Active
Viewed 79 times
0
Satyajit Behera
- 368
- 2
- 13
NAT
- 11
1 Answers
2
You can use the SQL Server LEAD window function over the "efdt" field, which will take the following value given two clauses:
PARTITION BY, which indicates the groups to work onORDER BY, which decided which value to take according to an order imposed by one (or more) of your fields.
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
Check the demo here.
Note: if you want one day less for each row, just add -1 after the DATEDIFF operation (demo).
lemon
- 14,875
- 6
- 18
- 38