CONSULTA SQL

Hola no se si este hilo ira aqui, pero esque me stoy volviendo loco con unas consultas sql, y posteaba por si alguien sabia como resolverlas.......
el tema es el siguiente:

tengo la tabla TEMA,

TEMA DENOMINACION TEMA_PADRE
T132----- TEMA 132 ----T13
T31 -------TEMA 31 ------T3
T4 ---------TEMA 4-------- -
T41 -------TEMA 41 ------T4
T5 ---------TEMA 5 -------- -
T122 ------TEMA 122 ---T12
T1 ---------TEMA 1-------- -
T11------- TEMA 11 ------T1
T13 -------TEMA 13------- T1
T131----- TEMA 131 -----T13
T1321---- TEMA 1321---- T132
T2--------- TEMA 2--------- -
T3 ----------TEMA 3--------- -
T32 --------TEMA 32------- T3
T411------- TEMA 411 -----T41
T12 -------TEMA 12--------- T1
T121 -------TEMA 121 -----T12

las consultas son las siguientes:
Lista de temas "pdre" (tema y denominacion) indicando para cada uno de ellos cuantos temas "hijo" tiene para esta consulta yo hago lo siguiente:

SELECT TEMA_PADRE, COUNT(TEMA_PADRE)
FROM TEMA TP
GROUP BY TEMA_PADRE
HAVING TEMA_PADRE IN (SELECT TEMA_PADRE
FROM TEMA)

pero a la hora de obtener la denominacion del padre no se como hacerlo, y la otra consulta tiene relacion con esta, y es la siguiente:

lista de temas y temas padre (tema, denominacion, tema padre, denominacion del tema padre)

si alguien sabe como resolverlo....

muchas gracias!!!!!!!!!
Tendrías que hacer un 'join' de la tabla consigo misma, sería algo así:

SELECT t1.TEMA_PADRE, count( * ) , t2.DENOMINACION
FROM TEMA t1
JOIN TEMA t2
WHERE t1.TEMA_PADRE = t2.TEMA
GROUP BY t1.TEMA_PADRE

Espero que te sirva.

Un saludo!
1 respuesta