SELECT a.demographic_no AS DemNo, dem.last_name AS 'Lastname', dem.first_name AS 'Firstname', CONCAT_WS('-', year_of_birth, month_of_birth, date_of_birth ) AS 'DOB', a.provider_no as 'ProvNo', prov.last_name, MAX( a.appointment_date ) AS 'RecentAppt' FROM appointment a LEFT JOIN demographic dem on a.demographic_no = dem.demographic_no LEFT JOIN provider prov on a.provider_no = prov.provider_no WHERE a.provider_no = IF('{provider}'=' ALL', a.provider_no , '{provider}' ) AND a.demographic_no > 0 GROUP BY a.demographic_no HAVING MAX( a.appointment_date ) < '{last_date}' ORDER BY dem.last_name, dem.first_name ; ( select distinct provider_no, concat(last_name,',',first_name,'(',provider_no,')') as name from provider where provider_type = 'doctor' and status = 1 ) UNION ( select ' ALL', 'All providers' ) order by provider_no ;