I cannot get the Lead/Lag functions to increment/decrement properly and return the correct values. No matter what I do, it still returns the current row. I need to display the previous p.field2 value and succeeding p.field2 value when p.field3 value = '223344'.
BEGIN TRY
SELECT p.field1,
p.field2,
LEAD( p.field2, 1, 'No Lead') OVER (ORDER BY p.field1) AS 'Lead',
LAG( p.field2, 1, 'No Lag' ) OVER (ORDER BY p.field1) AS 'Lag',
p.field3,
p.field4
FROM fieldTable p
WHERE p.field3 = '223344'
ORDER BY p.field1
END TRY
BEGIN CATCH
.....
END CATCH
Example Data in Database
1, 'Mr. Smith', '112233', 'Info1'
2, 'Mr. Jones', '223344', 'Info2'
3, 'Mr. Davis', '334455', 'Info3'
Data Being Returned for both Lag and Lead
2, 'Mr. Jones', 'Mr. Jones', 'Mr. Jones', '223344', 'Info2'
I need 'Mr. Smith' to be returned for Lag and 'Mr. Davis' returned for Lead