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: Quais programas tiveram as maiores doações totais no primeiro semestre de 2022?
 ###Tabelas: 
CREATE TABLE Donations (DonationID int, DonorID int, Amount decimal, DonationDate date); CREATE TABLE ProgramDonations (DonationID int, ProgramID int); CREATE TABLE Programs (ProgramID int, ProgramName varchar(50)); INSERT INTO Donations (DonationID, DonorID, Amount, DonationDate) VALUES (1, 1, 1000, '2022-01-01'); INSERT INTO ProgramDonations (DonationID, ProgramID) VALUES (1, 1); INSERT INTO Programs (ProgramID, ProgramName) VALUES (1, 'Health');
SELECT ProgramName, SUM(Donations.Amount) as TotalDonations FROM Donations JOIN ProgramDonations ON Donations.DonationID = ProgramDonations.DonationID JOIN Programs ON ProgramDonations.ProgramID = Programs.ProgramID WHERE YEAR(DonationDate) = 2022 AND MONTH(DonationDate) <= 6 GROUP BY ProgramName ORDER BY TotalDonations DESC;