ops...
ho dimenticato una cosa:
l'id della causale (1, 2, 3, ecc) corrisponde ad un nome causale.
dunque se ha causale 1 sarà scarto
se ha causale 2 donazione ecc.
quindi ad ogni id causale corrisponde un nome
ecco perchè facevo
select sum(qta) as scarto from tabella where causale='1' AND id_prodotto=$id
e poi ripetevo
select sum(qta) as donazione from tabella where causale='2' AND id_prodotto=$id
...per ogni tipo di causale
grazie