Es que estás haciendo una extraña mezcla de lenguajes de programación con SQL procedural de MySQL, más funciones mal manejadas.
El primer error lo tienes en el uso de CASE. No confundas la funcion CASE con el constructor CASE:
http://dev.mysql.com/doc/refman/5.0/...statement.html
Trata de atender a los ejemplos de uso de cada cosa en el manual de referencia, y ve agregandole los elementos paulatinamente. No intentes hacer un código complejo de entrada. Nunca funciona bien...