El problema es que no termino de entender qué lógica sigue el reporte que quieres general
, igual y si comienzas por explicarnos con palabras, más que con los datos cómo es que quieres llegar a ese reporte podríamos darte alguna alternativa... Ni siquiera entiendo cómo tienes ordenados los datos... tienes datos idénticos
Código MySQL:
Ver original+------+-------------+----------+
| id | num_defecto | cantidad |
+------+-------------+----------+
| 234 | 1287 | 0 |
| 24 | 1287 | 0 |
| 23 | 1287 | 0 |
+------+-------------+----------+
En tu reporte final a qué registro correspondería cada una de ellos??? qué pasaría por ejemplo si en lugar de tres registros para el num_defecto = 1287 hubiera 1 o 2??? cómo se debería presentar el reporte final???
Afortunadamente hay muchas técnicas en SQL para hacer cosas, no solo JOIN's... UNION's, productos cartesianos etc. Si todo esto falla, pues podías hacer uso de Procedimientos almacenados, pero para eso es necesario que quede claro qué es lo que quieres hacer.
Saludos
Leo