Query con Somma di un Campo , aggregazione e join

Pisinho

Nuovo Utente
6 Ott 2014
6
0
1
Buongiorno,
ho un problema con una query.
Database SQL Server 2005, 2 tabelle, un campo PIVA utilizzato come chiave per recuperare la ragione sociale dalla tabella anagrafica. Devo recuperare e sommare i kg acquistati dai clienti dalla tabella delle vendite ma nella tabella ho solo la partita iva quindi devo recuperarmi la ragione sociale tramite una join sulla tabella anagrafica. Il risultato però è diverso se prendo solo i kg prodotti dalla tabella vendite senza join con quella con la join per avere i nomi dei clienti.

SELECT tblVENDITE.PIVA, Sum(tblVENDITE.LORDO) AS CHILI, dbo_ANAGRAFICA.RAGSOC
FROM tblVENDITE LEFT JOIN dbo_ANAGRAFICA ON tblVENDITE.PIVA=dbo_ANAGRAFICA.IST_PIVA
GROUP BY tblVENDITE.PIVA, dbo_ANAGRAFICA.RAGSOC;

DOve sbaglio ? Ho provato sia con INNER e RIGHT ma il risultato non cambia...

Grazie mille.
 

Pisinho

Nuovo Utente
6 Ott 2014
6
0
1
Buongiorno,
non so se nessuno mi ha risposto perchè la domanda è sciocca o perchè nessuno ha capito il problema o l'errore, comunque spero in una risposta dopo questa ulteriore spiegazione. Ho notato che la QUERY mi tira fuori doppi record perchè va a prendere tutte le anagrafiche presenti nella tabella ANAGRAFICA che hanno quella partita IVA e quindi ho risultati doppi. Mi chiederete perchè ho più anagrafiche con la stessa PIVA, perchè i nostri clienti hanno più sedi in Italia ma sempre la stessa PIVA. Le ho provate tutte ma non ci riesco. HELP. Grazie a tutti.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, credo che la sezione non sia corretta, provo a dare un occhiata al massimo la sposto.
Il problema sicuramente è nel group by, hai provato a raggruppare per solo una tabella ?
Codice:
GROUP BY dbo_ANAGRAFICA.RAGSOC
edit:
sezione corretta ho visto male
 
Ultima modifica:

marino51

Utente Attivo
28 Feb 2013
2.920
164
63
Lombardia
Mi chiederete perchè ho più anagrafiche con la stessa PIVA, perchè i nostri clienti hanno più sedi in Italia ma sempre la stessa PIVA
normalissima situazione,

ma normalmente nelle anagrafiche è prevista anche un'identificazione della società a parità di partita iva, mi spiego
sede legale
sede amministrativa
sede commerciale 1
sede commerciale .....
sede produzione 1
sede produzione ....

in questo caso ti basta inserire il livello che ti interessa nella "join"

ma se per caso fossi in difficoltà, prova così (alla verifica, sembra non contenga errori formali)
Codice:
SELECT 
PIVA, 
Sum(LORDO) AS CHILI, 
(select TOP 1 RAGSOC from dbo_ANAGRAFICA where IST_PIVA=PIVA) RAGSOC
FROM tblVENDITE
GROUP BY PIVA
ciao
Marino