I have two tables:
Patient
PatientStatus
Check if your server supports windowed functions:
SELECT *
FROM Patient p
LEFT JOIN PatientStatus ps ON p.pkPatientId = ps.fkPatientId
QUALIFY ROW_NUMBER() OVER (PARTITION BY ps.fkPatientId ORDER BY ps.StartDate) < 3
Another possibility, which should work with SQL Server 2005:
SELECT * FROM Patient p
LEFT JOIN (
SELECT *, ROW_NUMBER(PARTITION BY fsPatientId ORDER by StartDate) rn
FROM PatientStatus) ps
ON p.pkPatientId = ps.fkPatientID
and ps.rn < 3