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: Listar todos os programas com seus respectivos contadores de impacto de voluntários e membros da comunidade.
 ###Tabelas: 
CREATE TABLE Programs (ProgramID INT, ProgramName TEXT); INSERT INTO Programs (ProgramID, ProgramName) VALUES (1, 'Feed the Hungry'), (2, 'Tutoring'); CREATE TABLE VolunteerPrograms (VolunteerID INT, ProgramID INT); INSERT INTO VolunteerPrograms (VolunteerID, ProgramID) VALUES (1, 1), (1, 2), (2, 1), (2, 2); CREATE TABLE CommunityImpact (ImpactID INT, ProgramID INT, Impacted INT); INSERT INTO CommunityImpact (ImpactID, ProgramID, Impacted) VALUES (1, 1, 500), (2, 1, 1000), (3, 2, 800);
SELECT Programs.ProgramName, COUNT(DISTINCT VolunteerPrograms.VolunteerID) AS VolunteerCount, SUM(CommunityImpact.Impacted) AS CommunityImpactCount FROM Programs INNER JOIN VolunteerPrograms ON Programs.ProgramID = VolunteerPrograms.ProgramID INNER JOIN CommunityImpact ON Programs.ProgramID = CommunityImpact.ProgramID GROUP BY Programs.ProgramName;