A dire la verità, ho fatto qualche passetto avanti... così:
anche se... a volte restituisce null, altre volte dati sbagliati. Non vorrei aver sbagliato qualcosa con le parentesi... in realtà non mi è chiaro aritmeticamente il passaggio.codice:SELECT documenti. * , TRUNCATE( SUM( (valore_unitario - (valore_unitario*(sconto)/100) + ( (valore_unitario- (valore_unitario*(sconto)/100)) *(iva)/100)) * qty) ,2) AS sommaTotale FROM articoliDocumenti, docartdoc, clienti, documenti WHERE documenti.idCliente = clienti.idCliente AND docArtDoc.idDocumento = documenti.idDocumento AND articoliDocumenti.idArticoloDocumento = docArtDoc.idArticoloDocumento AND clienti.idCliente =1 AND tipoDocumento = 0 GROUP BY idDocumento
Intendo dire che l'iva va calcolata sul valore_unitario già scontato. Per cui, si tratterebbe di fare questi passaggi:
Corretto? Non lo so... a volte mi da null e altre volte sclera con i risultati.codice:1) valore_unitario * sconto / 100 2) valore_unitario - il risultato del punto 1 e cioè valore_unitario - (valore_unitario * sconto / 100) 3) calcolare e aggiungere l'iva al risultato del punto 2, ovvero ((valore_unitario - (valore_unitario * sconto / 100)) * iva / 100) + valore_unitario 4) moltiplicare tutto per la quantità, e cioè: (((valore_unitario - (valore_unitario * sconto / 100)) * iva / 100) + valore_unitario) * qty
Franzauker, mi spieghi cosa intendi per euro-arrotondamenti devastanti? E, soprattutto, perché non funzionerà mai? Più tardi preparo il dump e lo posto qui, non è niente di colossale, faccio una versione minimalGrazie!

Grazie!
Rispondi quotando