no se si tu sentencia sea asi o lo haz tipeado mal... si no es asi creo que la sentencia deberia ser algo asi:
SELECT A.nombre, count(B.idA), count(C.idB), count (D.idC)
FROM D, C, B, A
WHERE A.id=B.idA AND C.idB=B.id AND D.idC=C.id
la cuestion esta en los "where", en la estructura que haz dado al inicio una tabla trae a la otra A -> B-> C -> D... eso quiere decir B hereda idA, C hereda idB, y asi... corrige eso y nos dices si funciona o no...