• I just took your last DDL and replaced the final select with this

    SELECT Distinct ROW_NUMBER() OVER(PARTITION BY re.AthleteGuid ORDER BY a.DateOfBirth DESC) AS rn,

    r.Guid as RegistrationID

    ,a.Guid as AthleteID

    ,a.Firstname as FName

    ,a.LastName as LName

    ,a.Gender as Sex

    ,a.Address1 as Addr

    ,a.City

    ,a.[State] as ST

    ,a.Zip

    ,a.MedicalConditions as Medical

    ,a.Email

    ,a.DayPhone

    ,a.EveningPhone

    ,re.USATNumber

    ,re.TShirtSize

    ,re.Division as Div

    , CASE r.PaperRegistration

    WHEN 1 THEN 'Paper'

    ELSE

    CASE r.PayByCheck

    WHEN 1 THEN 'Check'

    ELSE 'CC'

    END

    END as Paytype

    ,e.Name as [Event]

    ,r.Date as RaceDate

    ,TotalFee

    ,r.OnlineFee

    ,_rl.relay

    FROM #Registration r

    INNER JOIN #RegistrationEvent re ON re.RegistrationGuid = r.Guid

    INNER JOIN [#Event] e ON e.Guid = re.EventGuid

    INNER JOIN #Athlete a ON a.AccountGuid = r.AccountGuid AND a.Guid = re.AthleteGuid

    --LEFT JOIN RegistrationDiscount rd ON rd.RegistrationGuid = r.Guid

    LEFT JOIN #RegistrationRelayLeg rrl ON rrl.AthleteGuid = a.Guid

    --LEFT JOIN #RegistrationQuestion rq ON rq.AthleteGuid = a.Guid

    --LEFT JOIN RegistrationAdditionalFee ra ON ra.RegistrationGuid = r.Guid

    CROSS APPLY

    (

    SELECT

    CONVERT(NVARCHAR(MAX), rl.LegName) + ',' AS [text()]

    ,CONVERT(NVARCHAR(MAX), rl.Name) + ',' AS [text()]

    ,CONVERT(NVARCHAR(MAX), rl.MedicalConditions) + ',' AS [text()]

    ,CONVERT(NVARCHAR(MAX),Convert(varchar(10),rl.DateOfBirth, 101)) + ',---' AS [text()]

    FROM

    #RegistrationRelayLeg rl

    WHERE

    rl.RegistrationGuid = r.Guid

    ORDER BY

    AthleteGuid

    FOR XML PATH('')

    ) _rl (relay)

    WHERE TotalFee > 0

    and r.RaceGuid='04010abc-83dd-4aaf-abb1-0177eac5d562'

    I think that gets what you want, but it is hard to say for sure.