Hola,
gracias por responder. He de decir que de la sentencia que ejecuto, me sorprenden dos cosas.
1.- La respuesta tarda muchísimo.
2.- EL resultado no es el que deseo. Me repite algunas poblaciones, por lo que no puedo dar por bueno el resultado.
la sentencia es la que me has comentado, Gallosuarez
Código SQL
[-]with pivote as (select poblacion, estadocivil, count(idcliente) as cantidad
from cliente
group by poblacion, estadocivil
)
SELECT
P.POBLACION,
COALESCE(P_CASADOS.CANTIDAD, 0) AS CASADOS,
COALESCE(P_SOLTEROS.CANTIDAD, 0) AS SOLTEROS
FROM PIVOTE P
LEFT JOIN PIVOTE P_CASADOS
ON P.POBLACION = P_CASADOS.POBLACION
AND P_CASADOS.ESTADOCIVIL = 'CASADO'
LEFT JOIN PIVOTE P_SOLTEROS
ON P.POBLACION = P_SOLTEROS.POBLACION
AND P_SOLTEROS.ESTADOCIVIL = 'SOLTERO'
Un saludo