• Try this.

    WITH TEMP_CTE AS(

    SELECT PAT_ONE.PatientID, PAT_ONE.AdmissionDate, PAT_ONE.DischargeDate, PAT_ONE.Cost

    FROM PatientProblem PAT_ONE

    LEFT OUTER JOIN PatientProblem PAT_TWO ON PAT_ONE.PatientId = PAT_TWO.PatientID AND PAT_ONE.DischargeDate = DATEADD(day, -1, PAT_TWO.AdmissionDate)

    WHERE

    PAT_TWO.PatientID IS NULL

    UNION ALL

    SELECT PAT_TWO.PatientId, PAT_TWO.AdmissionDate, TEMP_CTE.DischargeDate, PAT_TWO.Cost + TEMP_CTE.Cost

    FROM PatientProblem PAT_TWO, TEMP_CTE

    WHERE

    PAT_TWO.PatientId = TEMP_CTE.PatientId AND TEMP_CTE.AdmissionDate = DATEADD(day, 1, PAT_TWO.DischargeDate)

    ),

    CTE_TWO AS

    (SELECT *, ROW_NUMBER() OVER(PARTITION BY PatientId, DischargeDate ORDER BY AdmissionDate ASC) ROW_NUM FROM TEMP_CTE)

    SELECT * FROM CTE_TWO

    WHERE ROW_NUM = 1