SELECT
IF(a.provider_no,IFNULL(d.provider_no,"Total"),'GTL') as 'MRP',
COUNT(`appointment_no`) as '#{start_date}
to{end_date}',
IF(a.provider_no,p.last_name,'') as 'Provider',
a.provider_no 'no'
FROM `appointment` a,
demographic d,
provider p
WHERE a.`demographic_no`=d.demographic_no
AND d.provider_no > 0
AND appointment_date > '{start_date}'
AND appointment_date < '{end_date}'
AND a.provider_no LIKE {provider_no}
AND a.status <> 'N'
AND a.status <> 'C'
AND a.demographic_no <> '0'
AND p.provider_no=a.provider_no
GROUP BY a.provider_no, d.provider_no WITH ROLLUP;
SELECT "'%'" as provider_no, 'all providers' as provider
UNION
SELECT provider_no, concat(last_name,',',first_name,'(',provider_no,')') from provider
WHERE status='1'
ORDER BY provider_no;