Primero, decir que "no me esta funcionando" no es información útil.
¿No te funciona en qué sentido? ¿Como ejecutas el script? ¿Qué resultados obtienes? ¿Qué errores te devuelve?
Segundo, si bien las tablas temporary son poderosas, hay que tener en cuenta que el script debe ejecutarse sin interrupciones de conexión, porque si no la tabla desaparece... porque es TEMPORARY.
Las tablas de ese tipo son mas eficientes si las trabajas dentro de los stored procedures. Si lo haces en interfaces del tipo phpMyadmin, te comento que usualmente no funcionan.
Finalmente, te comento que en MySQL esto no se admite:
MySQL no permite que se escriba la misma tabla que se está leyendo.
Además que es un error innecesario guardar campos calculables.