Prueba esto (yo no lo he probado). La sintaxis es para MySQL, pero si adaptas lo que parezca necesario, hará, creo, lo que quieres...
Código sql:
Ver originalSELECT Areas.id, Areas.nombre, IFNULL(t1.Tot,0) AS Total FROM Areas LEFT JOIN
(SELECT Areas.Id, COUNT(*) AS Tot FROM Areas INNER JOIN Codigos ON Codigos.Area_Id = Areas.Id
WHERE Codigos.Usado = 1 GROUP BY Areas.id)t1 ON Areas.id=t1.id ORDER BY Areas.nombre