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
Left join e group by
martedì 25 marzo 2008 - 15.28
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
squilibrio
Profilo
| Expert
527
messaggi | Data Invio:
mar 25 mar 2008 - 15:28
Ho una select che recupera i record di una testata sommando gli elementi di dettaglio ... tramite il group by ed il sum(campo_dettaglio)
il mio problema è che non tutte le testata potrebbero avere un dettaglio.... allora penso:
risolvo il problema mettendo left join invece di inner join
ma.... sopresa
noto che il group by non mi torna nessun valore (se ho solo testata e nessun dettaglio)
come posso risolvere il problema?
Grazie
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mar 25 mar 2008 - 15:31
>risolvo il problema mettendo left join invece di inner join
>ma.... sopresa
>noto che il group by non mi torna nessun valore (se ho solo testata
>e nessun dettaglio)
>come posso risolvere il problema?
Posta la tua query con possibilmente le CREATE e alcune INSERT. Così possiamo intervenire meglio
>
>
>Grazie
di nulla!
Alx81 =)
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
squilibrio
Profilo
| Expert
527
messaggi | Data Invio:
mar 25 mar 2008 - 18:46
Grazie per l'aiuto..... la tabella ha questa struttura:
DROP TABLE IF EXISTS `AAAA`.`webspedizioni`;
CREATE TABLE `AAAA`.`webspedizioni` (
`id` int(10) unsigned NOT NULL auto_increment,
`idCliente` int(10) unsigned NOT NULL,
`idWebRubrica` int(10) unsigned NOT NULL,
`destRagioneSociale` varchar(255) NOT NULL,
`destNazione` varchar(255) NOT NULL,
`destIndirizzo` varchar(255) NOT NULL,
`destComune` varchar(255) NOT NULL,
`destProvincia` varchar(255) NOT NULL,
`destCap` varchar(10) NOT NULL,
`destTelefono` varchar(255) NOT NULL,
`destEmail` varchar(255) NOT NULL,
`colli` int(10) unsigned NOT NULL,
`idServizio` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=51 DEFAULT CHARSET=latin1;
DROP TABLE IF EXISTS `AAAA`.`webspedizionidettaglio`;
CREATE TABLE `AAAA`.`webspedizionidettaglio` (
`id` int(10) unsigned NOT NULL auto_increment,
`idSpedizioni` int(10) unsigned NOT NULL,
`lunghezza` double NOT NULL,
PRIMARY KEY (`id`),
KEY `FK_webspedizionidettaglio_1` (`idSpedizioni`),
CONSTRAINT `FK_webspedizionidettaglio_1` FOREIGN KEY (`idSpedizioni`) REFERENCES `webspedizioni` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=176 DEFAULT CHARSET=latin1;
DROP TABLE IF EXISTS `AAAA`.`webservizi`;
CREATE TABLE `AAAA`.`webservizi` (
`id` int(10) unsigned NOT NULL auto_increment,
`idServizio` int(10) unsigned NOT NULL,
`descrizione` varchar(255) NOT NULL,
`coefficente` double NOT NULL,
`idAzienda` int(10) unsigned NOT NULL,
`data` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2824 DEFAULT CHARSET=latin1;
La select è
SELECT dataSpedizione, destRagioneSociale, destNazione, destIndirizzo, destComune, destProvincia, destCap, colli, webservizi.Descrizione AS Servizio, SUM(peso) AS Peso, SUM(pesoVolumetrico) AS Volumetrico FROM webspedizioni LEFT JOIN webservizi ON webservizi.id = webspedizioni.idServizio LEFT JOIN webspedizionidettaglio ON webspedizionidettaglio.idSpedizioni = webspedizioni.id WHERE statoSpedizione = 'I' dataSpedizione < DATE_ADD(date(now()),Interval 1 day) GROUP BY idSpedizioni
il problema è che se non record nella tabella di dettaglio webspedizionidettaglio il group by non mi fa vedere le info della testata
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mar 25 mar 2008 - 19:44
>il group by non mi fa vedere le info della testata
Secondo me il problema sta nel filtro.. Quella where probabilmente esclude alcuni record che vorresti vedere..
Probabilmente ci sono alcune condizioni che puoi permetterti di mettere nella ON di una delle join.
Alx81 =)
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
squilibrio
Profilo
| Expert
527
messaggi | Data Invio:
mar 25 mar 2008 - 21:16
no no ... aggiungendo un record nel dettaglio l'elemento viene visualizzato
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mar 25 mar 2008 - 22:44
>no no ... aggiungendo un record nel dettaglio l'elemento viene
>visualizzato
Per favore, passami anche alcune insert dei tuoi dati così proviamo
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 !