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 que receberam doações nos últimos 3 meses, mas não receberam nenhuma doação no último mês, e suas respectivas doações totais.
 ###Tabelas: 
CREATE TABLE programs(id INT, name TEXT, budget FLOAT);CREATE TABLE donations(id INT, program_id INT, amount FLOAT, donation_date DATE);
SELECT programs.name, SUM(donations.amount) as total_donations FROM programs JOIN donations ON programs.id = donations.program_id WHERE donations.donation_date BETWEEN DATE_SUB(CURDATE(), INTERVAL 3 MONTH) AND DATE_SUB(CURDATE(), INTERVAL 1 MONTH) AND programs.id NOT IN (SELECT program_id FROM donations WHERE donations.donation_date BETWEEN DATE_SUB(CURDATE(), INTERVAL 1 MONTH) AND CURDATE()) GROUP BY programs.id;