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 montante total de financiamento recebido pelos programas de dança no último mês por cidade?
 ###Tabelas: 
CREATE TABLE dance_programs (program_id INT, program_name VARCHAR(50)); CREATE TABLE program_funding (program_id INT, source_id INT, amount DECIMAL(5,2)); CREATE TABLE funding_sources (source_id INT, source_name VARCHAR(50)); CREATE TABLE dance_events (event_id INT, program_id INT, city VARCHAR(50), event_date DATE); INSERT INTO dance_programs (program_id, program_name) VALUES (1, 'Ballet'), (2, 'Modern Dance'), (3, 'Hip Hop'); INSERT INTO funding_sources (source_id, source_name) VALUES (1, 'Government Grants'), (2, 'Private Donors'), (3, 'Corporate Sponsors'); INSERT INTO dance_events (event_id, program_id, city, event_date) VALUES (1, 1, 'New York', '2022-01-01'), (2, 2, 'Los Angeles', '2022-02-10'), (3, 3, 'Chicago', '2022-05-15'); INSERT INTO program_funding (program_id, source_id, amount) VALUES (1, 1, 10000), (1, 2, 5000), (2, 1, 7000), (2, 3, 15000), (3, 2, 8000), (3, 3, 12000);
SELECT e.city, SUM(p.amount) as total_funding FROM dance_programs p INNER JOIN program_funding f ON p.program_id = f.program_id INNER JOIN dance_events e ON p.program_id = e.program_id INNER JOIN funding_sources fs ON f.source_id = fs.source_id WHERE e.event_date >= DATEADD(month, -1, GETDATE()) GROUP BY e.city;