Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Join che duplica valori
martedì 22 aprile 2008 - 18.48
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
albedo
Profilo
| Junior Member
59
messaggi | Data Invio:
mar 22 apr 2008 - 18:48
Ciao, ragzzi
SELECT SUM(VENDITE.COLLI) as colli , VENDITE.FORNITORE as for, CARICHI.CARICO FROM VENDITE LEFT JOIN CARICHI ON CARICHI.ID_FOR = VENDITE.ID_FOR WHERE VENDITE.ARTICOLO = 'MARTELLO' GROUP BY VENDITE.FORNITORE, CARICHI.CARICO"
Questa query mi restituisce i valori duplicat e non riesco a capire perché, vi assicuor che ho cercato sul forum una possibile soluzione, ma non ne ho trovate, ho pensato che deve essere talmente semplice che a nessuno è mai sorto un problema simile.
Il risutato corretto dovrebbe essere
colli fornitore
2 MARCELLO
5 NANDO
6 UGO
.
Invece mi restituisce:
colli fornitore
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mar 22 apr 2008 - 23:47
>Ciao, ragzzi
ciao!
>
>SELECT SUM(VENDITE.COLLI) as colli , VENDITE.FORNITORE as for,
>CARICHI.CARICO FROM VENDITE LEFT JOIN CARICHI ON CARICHI.ID_FOR
>= VENDITE.ID_FOR WHERE VENDITE.ARTICOLO = 'MARTELLO' GROUP BY
>VENDITE.FORNITORE, CARICHI.CARICO"
>
>Questa query mi restituisce i valori duplicat e non riesco a
>capire perché, vi assicuor che ho cercato sul forum una possibile
>soluzione, ma non ne ho trovate, ho pensato che deve essere talmente
>semplice che a nessuno è mai sorto un problema simile.
>
>Il risutato corretto dovrebbe essere
>
>colli fornitore
>2 MARCELLO
>5 NANDO
>6 UGO
Non può esserlo, nella select includi anche il carico e poi quindi sei costretto a raggruppare anche per quel campo oltre che per il fornitore.
Hai i valori non duplicati, n-uplicati, poichè a parità di fornitori puoi avere più carichi. Elimina il campo CARICHI.CARICO sia nella SELECT che nella GROUP BY.
ciao!
Alx81 =)
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
albedo
Profilo
| Junior Member
59
messaggi | Data Invio:
mer 23 apr 2008 - 15:01
>>Ciao, ragzzi
>ciao!
>>
>>SELECT SUM(VENDITE.COLLI) as colli , VENDITE.FORNITORE as for,
>>CARICHI.CARICO FROM VENDITE LEFT JOIN CARICHI ON CARICHI.ID_FOR
>>= VENDITE.ID_FOR WHERE VENDITE.ARTICOLO = 'MARTELLO' GROUP BY
>>VENDITE.FORNITORE, CARICHI.CARICO"
>>
>>Questa query mi restituisce i valori duplicat e non riesco a
>>capire perché, vi assicuor che ho cercato sul forum una possibile
>>soluzione, ma non ne ho trovate, ho pensato che deve essere talmente
>>semplice che a nessuno è mai sorto un problema simile.
>>
>>Il risutato corretto dovrebbe essere
>>
>>colli fornitore
>>2 MARCELLO
>>5 NANDO
>>6 UGO
>Non può esserlo, nella select includi anche il carico e poi quindi
>sei costretto a raggruppare anche per quel campo oltre che per
>il fornitore.
>Hai i valori non duplicati, n-uplicati, poichè a parità di fornitori
>puoi avere più carichi. Elimina il campo CARICHI.CARICO sia nella
>SELECT che nella GROUP BY.
>ciao!
>Alx81 =)
>
>
http://www.alessandroalpi.net
>
http://blogs.dotnethell.it/suxstellino
>
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
>
http://italy.mvps.org
Ciao Alx81,
Sei un raggio di luce in questio mondo di tenebre che per me è l'SQL
Ovviamente, la query così come l'hai suggerita tu funziona alla perfezione, ma io ho omesso di dire che quella query dovrebbe restituirmi anche il valore del campo 'CARICO' della tabella 'CARICHI'.
IN pratica vorrei creare uan datatable che contenga i campi: FORNITORE, CARICO E SUM(COLLI) in cui fornitore e somma dei colli dovrebbero essere prelevati dalla tabella vendite ed il valore del campo CARICO dalla tabella CARICHI.
Ogni fornitore può avere più di un articolo caricato, così, idealmente se il fornitore MARCELLO oggi ha in carico 10 MARTELLO e 10 CHIAVI ed ha venduto un totale di 3 MARTELLO, la queri dovrebbe restituirmi questi valori:
FORNITORE VENDUTI CARICO ARTICOLO
MARCELLO 3 10 MARTELLO
MARCELLO 0 10 CHIAVI
Spero si una cosa fattibile.
Ciao
e grazie di nuovo
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
gio 24 apr 2008 - 08:42
>Ovviamente, la query così come l'hai suggerita tu funziona alla
>perfezione, ma io ho omesso di dire che quella query dovrebbe
>restituirmi anche il valore del campo 'CARICO' della tabella
>'CARICHI'.
I valori vengono n-uplicati nella tua query perchè evidentemente, a parità di fornitore, hai più carichi..
Di conseguenza, raggruppando, ottieni record distinti. Quale carico ti serve per fornitore? Ti basterebbe un'altra funzione di aggregazione (ad esempio una MAX). Ma prima di tutto, è corretto che tu abbia carichi diversi per un fornitore?
>e grazie di nuovo
di nulla!
Alx81 =)
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
albedo
Profilo
| Junior Member
59
messaggi | Data Invio:
gio 24 apr 2008 - 13:40
>I valori vengono n-uplicati nella tua query perchè evidentemente,
>a parità di fornitore, hai più carichi..
>Di conseguenza, raggruppando, ottieni record distinti. Quale
>carico ti serve per fornitore? Ti basterebbe un'altra funzione
>di aggregazione (ad esempio una MAX). Ma prima di tutto, è corretto
>che tu abbia carichi diversi per un fornitore?
>
>>e grazie di nuovo
>di nulla!
>Alx81 =)
>
>
http://www.alessandroalpi.net
>
http://blogs.dotnethell.it/suxstellino
>
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
>
http://italy.mvps.org
Sì, è corretto: un solo fornitore può avere carichi diversi di articoli diversi nella stessa giornata
Ciao
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
gio 24 apr 2008 - 13:46
>Sì, è corretto: un solo fornitore può avere carichi diversi di
>articoli diversi nella stessa giornata
Allora devi per forza scegliere quali degli n carichi vuoi vedere (il massimo, il minimo, la media, ecc).. altrimenti tutto viene n-uplicato..
Se non puoi, devi omettere il carico.. Se il carico è diverso, ovviamente avrai n righe a parità di Fornitore e Articolo..
Alx81 =)
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
Torna su
Stanze Forum
Elenco Threads
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 !