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 evento tem uma superfície de semifinal e um vencedor de hard (i)?
 ###Tabelas: CREATE TABLE all_councils (all_councils_id AUTO_INCREMENT PRIMARY KEY, Party VARCHAR, County INT, City INT, Borough INT, Town INT, Total INT) CREATE TABLE 2005–present (2005–present_id AUTO_INCREMENT PRIMARY KEY, Season INT, Player VARCHAR, Club VARCHAR, Goals INT, Games INT, Rate INT) CREATE TABLE g_class (g_class_id AUTO_INCREMENT PRIMARY KEY, Ship VARCHAR, Pennant number VARCHAR, Laid down VARCHAR, Launched VARCHAR, Completed VARCHAR) CREATE TABLE discontinued_models (discontinued_models_id AUTO_INCREMENT PRIMARY KEY, Maker VARCHAR, Model VARCHAR, Intro year VARCHAR, Screen size (inch) VARCHAR, Self-lit VARCHAR, Screen type VARCHAR, Screen pixels VARCHAR) CREATE TABLE best_5_matches_by_atpworldtour.com (best_5_matches_by_atpworldtour.com_id AUTO_INCREMENT PRIMARY KEY, !Event INT, Round VARCHAR, Surface VARCHAR, Winner VARCHAR, Opponent VARCHAR, Result VARCHAR)  
SELECT MAX !Event FROM best_5_matches_by_atpworldtour.com WHERE Surface = semifinal AND Winner = hard (i)