Когда TiemOut
равно нулю, условие в подзапросе становится следующим:
where @searchTime between TimeIn and null
Это всегда будет оцениваться как ложное (не меньше, чем null
).
Решение будетбыть явно обработать этот случай использования:
select Count(ParkingSlotId) as 'Empty Spots'
from [ParkingLot].[ParkingSlot]
where ParkingSlotId not in (
select ParkingSlotId
from [Transaction].[ParkingTransaction]
where
@searchTime >= TimeIn
and ([TimeOut] is null or @searchTime <= [TimeOut])
)