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: Calcular a porcentagem de voluntários que têm menos de 18 anos e listá-los juntamente com suas horas totais de voluntariado para o ano atual.
 ###Tabelas: 
CREATE TABLE Volunteers (VolunteerID INT, VolunteerName VARCHAR(50), DateOfBirth DATE); INSERT INTO Volunteers (VolunteerID, VolunteerName, DateOfBirth) VALUES (1, 'James Brown', '1993-01-01'), (2, 'Jessica White', '2003-01-01'); CREATE TABLE VolunteerHours (VolunteerID INT, Hours INT, VolunteerDate DATE); INSERT INTO VolunteerHours (VolunteerID, Hours, VolunteerDate) VALUES (1, 5, '2021-01-01'), (1, 6, '2021-02-01'), (1, 7, '2021-03-01'), (2, 4, '2021-01-01'), (2, 3, '2021-02-01'), (2, 2, '2021-03-01');
SELECT ROUND(COUNT(CASE WHEN TIMESTAMPDIFF(YEAR, Volunteers.DateOfBirth, CURDATE()) < 18 THEN Volunteers.VolunteerID END) / COUNT(*) * 100, 2) AS Under18Percentage, Volunteers.VolunteerName, SUM(VolunteerHours.Hours) AS TotalHoursForYear FROM Volunteers INNER JOIN VolunteerHours ON Volunteers.VolunteerID = VolunteerHours.VolunteerID AND VolunteerHours.VolunteerDate <= CURDATE() AND YEAR(VolunteerHours.VolunteerDate) = YEAR(CURDATE()) GROUP BY Volunteers.VolunteerName;