What about:
Code:
;WITH UniqueApp AS
(SELECT DISTINCT appt_date, memberid, status FROM dbo.Appointments WHERE appt_date between '03/01/2019' and '02/29/2020 AND status= 'Missed')
SELECT a.name, b.appt_date,c.provider
from dbo.patient a inner join UniqueApp b on a.memberid = b.memberid
inner join dbo.providers c on b.providerid = c.providerid
Group by a.name, b.appt_date, c.provider
Of-course there remains the question, what about case where from 2 entries for appointments on same day one is set 'Missed', and another not! When there is no way to have 2 appointments on same day, then I advice to set an unique index for table Appointments composed from fields appt_date and memberid. Otherwise at least let entry form to check for double entry, and when found, then give a warning (and both entries must be then visible in entry form). Or - e.g. in case you can't edit SQL database - you periodically run a query, which returns a list of multiple entries, and you somehow handle this in SQL database (manually deleting abundant entries, or running a delete query based on data you get from 1st one).