Saluti a tutti, ho 3 tabelle:
utenti -> (id, cognome, nome)
prestazioni -> (id, id_utente, importo)
pagamenti-> (id, id_utente, importo)
vorrei ottenere una lista di tutti gli utenti con il cognome e relativo saldo (dato dalla differenza tra il totale delle prestazioni e il totale dei pagamenti).
ho provato con la query più ovvia:
ma mi restituisce numeri errati (esempio: ho due prestazioni, ed un solo pagamento, allora mi somma due volte l'importo del pagamento).codice:SELECT utenti.cognome, utenti.id, (Sum( prestazioni.importo ) - Sum( pagamenti.importo ) ) AS saldo FROM utenti LEFT JOIN prestazioni ON prestazioni.id_utente = utenti.id LEFT JOIN pagamenti ON pagamenti.id_utente = utenti.id GROUP BY utenti.id
Dove sbaglio? Grazie in anticipo per l'aiuto!

Rispondi quotando