Ciao a tutti.
All'interno di una tabella che contiene ordini e fatture, devo sommare il valore delle fatture registrate in un dato periodo di tempo.

Ogni fattura però può fare riferimento a più ordini, e nella riga corrispondente all'interno del database viene riportato l'importo totale della fattura.

Prendiamo come esempio questa base di dati:

Tipologia NOrdine FatturaId ImportoFattura
O 109 600102 30€
O 110 600102 30€
O 111 600565 70€

Inizialmente avevo fatto così:

codice:
SELECT SUM (CASE WHEN FGSPORT_TA_TESTATA_ORDINI_ACQ.Tipologia = 'O' AND SBI_TA_TESMOV.ImportoFattura > 0  THEN SBI_TA_TESMOV.ImportoFattura END)  ) AS SommaFatturato 

ecc ecc, altri sum case per altre voci

FROM 

una tabella generata effettuando join tra più tabelle

GROUP BY

alcune voci
...ma se ho una fattura che comprende più ordini come scritto anche sopra, queste righe ordine mi vengono duplicate.

In soldoni: SommaFatturato così mi risulta essere 130 quando dovrebbe essere 100.


Come posso integrare una clausola DISTINCT che non consideri i duplicati di FatturaId all'interno di questo SUM (CASE) già sufficentemente nidificato?


Grazie mille per il vostro aiuto.