El "truco" general es muy simple. Puedes insertar un select siempre donde hay un nombre de tabla:
Código SQL
[-]SELECT campo FROM
(SELECT 1 AS campo)a
Esto es lo mismo que hace un VIEW, solo que CREATE VIEW "guarda" ese SQL con un nombre.
Sabiendo esto, es solo de "partir" en 2 la sentencia: Crear un VIEW "anónimo" y luego jalar los datos:
Código SQL
[-]
SELECT Afiliados .....
FROM
(SELECT COUNT(*) AS Afiliados FROM Persona JOIN ....
) Afiliado JOIN ....