Hola riscking:
Vayamos por partes, cuando te refieres a VACIO y LLENO, ¿te refieres a esas palabras simplemente a que puedan tener o no algo?, te recuerdo que en BD el concepto de VACIO, está representado por el NULL, que no la palabra 'NULL', son cosas muy distintas. para el ejemplo voy a suponer que tus campos "VACIOS" en realidad tienen un NULL asignado, podrías hacer lo siguiente:
Código MySQL:
Ver original+------+------------+-------------+----------+-------+-------+-------+
| id | categoria | descripcion | aprobado | des2 | des3 | des4 |
+------+------------+-------------+----------+-------+-------+-------+
| 1 | aventuras
| julio verne
| NO | lleno
| lleno
| NULL | | 2 | literatura
| otro
| NO | lleno
| NULL | NULL | | 3 | ciencia
| matematicas
| SI
| lleno
| NULL | NULL | | 4 | humor
| quino
| NO | lleno
| NULL | lleno
| +------+------------+-------------+----------+-------+-------+-------+
+-------+
| total |
+-------+
| 5 |
+-------+
Observa que estoy realizando una suma condicional, un especie de
Cada vez que se analiza un campo se verifica si el campo aprobado (Si, con B y no con V) es igual a 'NO' y si el campo tiene algún contenido (IS NOT NULL) si es así se suma 1 al contador, y en caso se le suma un cero (en otras palabaras no se le suma nada). Observa que en la tabla hay 6 campos llenos, pero uno de ellos tiene aprobado = 'SI', por lo tanto este campo no se contabiliza.
hay muchas otras formas para llegar al mismo resultado. Dale un vistazo para ver si te sirve.
Saludos
Leo.