Mi pare che non sia un problema di query, ma di formattazione del result set ottenuto. Si tratta di record diversi che devi allineare in una sola linea. Non potrai mai ottenere un result set gia' formattato a quel modo.
in pratica devi usare una if (esempio parlato...)...
while .... {
if ($id, $tipo, $filato == a id, tipo, filato appena estratto )
allora stampa solo <td>"quantita" </td>
else stampa tutto </tr><tr><td> dati
$id = id estratto;
$tipo = idem;
$filato = idem;
} // fine while
![]()