select
idRuler AS CURRID,
beginDate,
endDate,
(SELECT SUM(TotalYearsAtService)
FROM Ruler WHERE idRuler=CURRID
) AS PeriodTotal,
(SELECT COUNT(DISTINCT IDstateddFK)),
nameRuler AS Name
FROM Ruler, Position, RulerToState
where Ruler.idRuler=IDrulerFK
and RulerToState.IDrulerdFK=Ruler.idRuler
GROUP BY nameRuler
It does not see CURRID inside (SELECT SUM(TotalYearsAtService) FROM Ruler WHERE idRuler=CURRID )