Allora, al netto degli arrotondamenti (che son devastanti, lo ribadisco)
questo ti dà i totali (che penso siano quelli che cerchi)

select documenti.iddocumento,sum(qty*valore_unitario) as imponibile_lordo,
sum(qty*valore_unitario*(100-sconto)/100) as imponibile_scontato,
sum(qty*valore_unitario*(100-sconto)/100*iva/100) as importo_iva,
sum(qty*valore_unitario*(100-sconto)/100*(1+iva/100)) as totale_ivato
from documenti,docartdoc, articolidocumenti
where documenti.iddocumento=docartdoc.iddocumento
and docartdoc.idarticolodocumento=articolidocumenti.id articolodocumento
group by iddocumento

personalmente ritengo che la modellazione che hai fatto sia piuttosto lontana da come si fa normalmente per i normali documenti testata-righe; c'è un motivo particolare per cui lo vuoi tenere così (normalizzazione?) o no?

è quantomeno auspicabile de-normalizzare lo schema ed inserire tanti bei campettini con i valori, ognuno dei quali euro-arrotondato

ciò ti consente di fare query con un solo join (enormemente più veloce), o anche nessun join del tutto (tenendo i totali nella testata)

inoltre hai anche la possibilità di avere un controllo tra le righe ed i totali, utile per evitare che problemi sul db ti seghino via definitivamente informazioni preziose.

supponi che una delle righe di docartdoc sparisca: il tuo documento sarà modificato per sempre e non potrai in alcun modo capire che è stato alterato.

questo motivo, da solo, è generalmente sufficiente (parlo di gestionali "veri") a suggerire approcci diversi.

buonanotte ci aggiorniamo se ti servono altre info