Что-то вроде этого должно работать:
CASE WHEN (SELECT COUNT(*) FROM purchases WHERE purchase_user_id = user_id) > 0
THEN balance_value
ELSE 0
END as balance
РЕДАКТИРОВАТЬ: исходя из запроса, который вы добавили, я думаю, вы можете просто COALESCE
сумму до 0, прежде чем делать SUM()
. Это должно предотвратить возврат значения NULL, если в таблице покупок нет записей.
SELECT ce.platform_id,
SUM(COALESCE(p.amount, 0))
FROM current_eligibility ce
LEFT JOIN purchases p ON p.platformId = ce.platform_id
WHERE p.currency = 'X123' AND
ce.platform_id = 'X2334'
GROUP BY ce.platform_id