Query un po complicata

lunedì 16 febbraio 2009 - 23.35

Gianni77 Profilo | Junior Member

Illustro rapidamente il problema, in un semplicissimo software di contabilità ho 2 tabelle:

tabella movimenti, dove vengono registrati i movimenti monetari, c'è una colonna "cifra" nella quale viene messa la cifra da movimentare, una colonna "tipo_movimento" nella quale 0 sta per versamento in ingresso e 1 per versamento in uscita e una colonna "id_riferimento" che contiene l'id della persona che ha effettuato il movimento, l'id della persona si trova nella:

tabella persone, colonna id= id della persona, colonna nome, colonna cognome con funzioni ovvie...

Ora la questione è: con una sola query vorrei ottenere un elenco formattato come:
cognome - nome - cifra totale (intesa come somma movimenti in ingresso MENO somma movimenti in uscita per quella singola persona),

con una query del genere:

SELECT persone.cognome || ' ' || persone.nome AS fullname,SUM(movimenti.cifra) AS totale_dare FROM movimenti JOIN persone ON persone.id=movimenti.id_riferimento WHERE tipo_movimento=1 GROUP BY fullname

riesco ad ottenere un elenco di cognome,nome e totale cifra da dare.... come faccio con un'unica query a far sottrarre dalla cifra da dare, le cifre versate, tenendo conto che il movimento dare o avere viene controllato dalla colonna tipo_movimento come su detto ?

(utilizzo firebird, ma la struttura della query dovrebbe valere per tutti a meno dell'operatore di concatenazione (||) valido solo per oracle)
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5