Abaixo está uma instrução que descreve uma tarefa de geração de SQL, combinada com uma entrada que fornece mais contexto sobre os esquemas de tabela disponíveis. Escreva o código SQL que responda adequadamente à solicitação
 ###Instrução: Qual é o número total de voluntários e doadores para cada programa em 2021?
 ###Tabelas: 
CREATE TABLE donations (id INT, donor_id INT, donation_amount DECIMAL, donation_date DATE, donor_program VARCHAR); INSERT INTO donations (id, donor_id, donation_amount, donation_date, donor_program) VALUES (1, 101, '500', '2021-01-01', 'Arts & Culture'), (2, 102, '300', '2021-02-01', 'Sports'), (3, 103, '800', '2021-03-01', 'Arts & Culture'); CREATE TABLE volunteers (id INT, name VARCHAR, program VARCHAR); INSERT INTO volunteers (id, name, program) VALUES (101, 'Jamila Davis', 'Arts & Culture'), (102, 'Ricardo Silva', 'Sports'), (103, 'Xiao Liu', 'Arts & Culture'), (104, 'Kim Lee', 'Education'); CREATE TABLE programs (id INT, name VARCHAR); INSERT INTO programs (id, name) VALUES (1, 'Arts & Culture'), (2, 'Sports'), (3, 'Education');
SELECT p.name as program_name, COUNT(DISTINCT v.id) as total_volunteers, COUNT(DISTINCT d.donor_id) as total_donors FROM programs p LEFT JOIN volunteers v ON p.name = v.program LEFT JOIN donations d ON p.name = d.donor_program AND YEAR(d.donation_date) = 2021 GROUP BY p.name;