Olá,
O resultado de seu código não gera a resposta esperada, pois a questão solicitada é retornar cliente que possuam suas somas de limite de credito maiores que 140.000. Seu select retorna os cliente que possuem limite de crédito igual ou maior que 140000 e depois soma esses limites.
A clausula WHERE é sempre atendida primeiro, e depois a clausula SELECT.
Uma alteranativa ao having seria usar um subselect
SELECT *
FROM (
SELECT bairro,
estado,
Sum ([LIMITE DE CREDITO]) AS [SOMA LIMITE]
FROM [dbo].[TABELA DE CLIENTES]
WHERE estado = 'SP'
GROUP BY bairro,
estado) RESULTADO
and [SOMA LIMITE] >= 140000