group by non raggruppa

Lollo791

Nuovo Utente
17 Apr 2020
8
0
1
19
salve a tutti,
mentre stavo provando varie query sul mio database ho notato questo errore e non capisco come correggere,praticamente quando raggruppo i dati su conti.nome la differenza di sum non attua il group by,semplicemente calcola il risultato totale senza calcolarlo per ogni conto.sicuramente vi è un errore di base ma non ho le conoscenze per risolvere.
Se qualcuno mi aiuta grazie molte.
Lascio qui il codice:

SQL:
SELECT conti.nome,sum(movimenti.dare)-sum(movimenti.avere) as ECCEDENZA_DARE
FROM movimenti,conti,gruppi
where conti.COD_CONTO=movimenti.cod_conto AND gruppi.CODICE=conti.codice AND conti.destinazione='ce'
GROUP BY conti.nome
HAVING ECCEDENZA_DARE>0;
 

marino51

Utente Attivo
28 Feb 2013
2.903
160
63
Lombardia
ti posto i dati di partenza dell'esempio ed il risultato

1587461367966.png


risultato ottenuto con questa query, da cui ho rimosso gruppi perché é una tabella inutilizzata
SQL:
SELECT
  c.nome
, sum(m.dare) as DARE
, sum(m.avere) as AVERE
, sum(m.dare) - sum(m.avere) as ECCEDENZA_DARE
FROM @movimenti m, @conti c
WHERE c.cod_conto=m.cod_conto
  AND c.destinazione='ce'
GROUP BY c.nome
HAVING ( sum(m.dare) - sum(m.avere) ) <> 0;
ps, ti suggerisco di lasciare dare e avere perché potrebbero contenere 1 milione di euro e un miline meno 1, la differenza é 1
ma il valore di partenza é molto significativo …..
 

Lollo791

Nuovo Utente
17 Apr 2020
8
0
1
19
@marino51 grazie della risposta molto chiara,ho trovato l'errore,era proprio concettuale sul group by, non sono ancora molto capace a ragionare su database completi ma ci arriverò.Grazie mille ancora davvero