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ì:
...ma se ho una fattura che comprende più ordini come scritto anche sopra, queste righe ordine mi vengono duplicate.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
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.

Rispondi quotando