Creo que debería estar bien, pero sin BD para probar....
Ya me dirás.
Código SQL
[-]
SELECT A.Municipio, B.Nombre, F.Padron,
cast( RDB$GET_CONTEXT('USER_TRANSACTION', 'AFILIADOS') as integer) AS Afiliados,
CASE WHEN F.Padron = 0 THEN 0 ELSE 100 * cast( RDB$get_CONTEXT('USER_TRANSACTION', 'AFILIADOS') as integer) / F.Padron END,
RDB$SET_CONTEXT('USER_TRANSACTION', 'AFILIADOS', (SELECT COUNT(*)
FROM Persona
WHERE CodPrv = A.CodPrv AND
Junta = C.Codigo AND
Situacion IN (SELECT Valor
FROM Instalacion
WHERE Etiqueta = 'Situacion' AND Situacion = 1)) ) as var_Afiliados
FROM DatLoc A, HisElec F
WHERE A.Municipio = F.Municipio AND
A.Municipio = 1217
Saludos...