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: Liste os programas e o número de doadores únicos que doaram para cada programa no primeiro trimestre de 2022.
 ###Tabelas: 
CREATE TABLE Programs (ProgramID int, Name varchar(50), Budget money); CREATE TABLE Donors (DonorID int, Name varchar(50), Age int, ProgramID int); CREATE TABLE Donations (DonationID int, DonorID int, Amount money, DonationDate date); INSERT INTO Programs (ProgramID, Name, Budget) VALUES (1, 'Education', 10000), (2, 'Healthcare', 15000), (3, 'Arts & Culture', 9000); INSERT INTO Donors (DonorID, Name, Age, ProgramID) VALUES (1, 'Alice', 25, 1), (2, 'Bob', 22, 1), (3, 'Charlie', 30, 2), (4, 'David', 28, 2), (5, 'Eva', 35, 3); INSERT INTO Donations (DonationID, DonorID, Amount, DonationDate) VALUES (1, 1, 500, '2022-01-01'), (2, 1, 2000, '2022-06-15'), (3, 2, 6000, '2022-03-25'), (4, 3, 1000, '2022-04-15'), (5, 5, 5000, '2022-01-05'), (6, 5, 1000, '2022-01-15');
SELECT P.Name, COUNT(DISTINCT D.DonorID) as UniqueDonors FROM Programs P JOIN Donors D ON P.ProgramID = D.ProgramID JOIN Donations DT ON D.DonorID = DT.DonorID WHERE MONTH(DT.DonationDate) BETWEEN 1 AND 3 GROUP BY P.Name;