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 orçamento total alocado para programas de engajamento comunitário na Ásia e quais programas receberam mais de 50% do orçamento alocado?
 ###Tabelas: 
CREATE TABLE CommunityPrograms(ProgramID INT, ProgramName VARCHAR(100), Region VARCHAR(50), Budget DECIMAL(10,2));   CREATE TABLE Allocations(ProgramID INT, AllocationID INT, AllocationAmount DECIMAL(10,2));
SELECT ProgramName, SUM(AllocationAmount) as AllocatedBudget FROM Allocations INNER JOIN CommunityPrograms ON Allocations.ProgramID = CommunityPrograms.ProgramID WHERE Region = 'Asia' GROUP BY ProgramName HAVING SUM(AllocationAmount) > (SELECT Budget FROM CommunityPrograms WHERE ProgramName = Programs.ProgramName) * 0.5;