Según parece, quieres el primer código por población en orden ascendente...
Podrías solucionarlo con un query correlacionado.
Código:
select a.poblacion,
(
select min(codigo)
from estados as b
where a.poblacion = b.poblacion
) as codigo
from poblaciones as a
Otra opción si estás usando SQL Server 2005 es que utilices la función de ranking ROW_NUMBER:
Código:
SELECT a.poblacion, b.codigo
FROM poblaciones AS a
LEFT JOIN (
SELECT ROW_NUMBER() OVER(PARTITION BY poblacion ORDER BY codigo)AS rn,
codigo,
poblacion
FROM estados
) AS b
ON a.poblacion = b.poblacion
AND b.rn = 1
La segunda opción podría ser más eficiente, ya que sólo hace una pasada para cada una de las tablas.