Я думаю, вы хотите выражение case
.Кроме того, поскольку данная строка имеет либо InOut
значение 0
или 1
, но не оба, я думаю, что вам нужно агрегирование.
Итак, я предполагаю:
select PunchMonth, PunchDay, PunchYear,
datediff(second, min(case when InOut = 0 then punchdatetime end),
max(case when InOut = 1 then punchdatetime end)
) as seconds_diff
from PunchClock
group by PunchMonth, PunchDay, PunchYear;