Unire sotto un'unica select due select distinte

venerdì 20 marzo 2009 - 13.07

trinity Profilo | Guru

salve in sql ho scritto questa stored:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

il risultato che esce con dei dati che ho inserito è il seguente (vedi figura)


459x178 19Kb


ora i vorrei prima di tutto che queste due select si unissero in modo da far uscire un'unico risultato (ovviamente potrei utilizzare la union all) e poi cosa + importante quando ci sono due record che hanno lo stesso codcomune e codcategoria, i totali dovrebbero sommarsi.

E' possibile tutto ciò?

se serve posso postare il codice delle tabelle con qualche dato dentro

ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

lbenaglia Profilo | Guru

>ora i vorrei prima di tutto che queste due select si unissero
>in modo da far uscire un'unico risultato (ovviamente potrei utilizzare
>la union all) e poi cosa + importante quando ci sono due record
>che hanno lo stesso codcomune e codcategoria, i totali dovrebbero
>sommarsi.
>
>E' possibile tutto ciò?
Certo:

SELECT codcomune, codcategoria, SUM(col1), ..., SUM(col_n) FROM ( SELECT codcomune, codcategoria, col1, ..., col_n FROM ... UNION ALL SELECT codcomune, codcategoria, col1, ..., col_n FROM ... ) AS Q GROUP BY codcomune, codcategoria;

Se utilizzi SQL Server 2005+ puoi incapsulare la tabella derivata in una CTE.

>se serve posso postare il codice delle tabelle con qualche dato
>dentro
Non serve, ora sai come devi procedere

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

Anonimo Profilo | Senior Member

Non ti scrivo la mia idea in termini di stored procedure poichè non conosco la sintassi di sqlserver, comunque secondo me potresti fare una roba del genere:

SELECT codcomune, comune, codcategoria, sum(totstrutture), sum(totcamere)... FROM( Query1 UNION Query2) GROUP BY comune, codcategoria

Ops è stata postata una risposta mentre rispondevo

Riccardo

trinity Profilo | Guru

La query consigliata funziona, solo che non è tutta completa ossia bisognerebbe implementarla per renderla definitiva.
Mi spiego!
come avete visto ci sono dei campi che vengono sommati. Il primo in ordine è il totstrutture. Allora se la seconda query ha il codcategoria uguale a quello della prima query allora devono essere sommati solo i campi totcamere,totletti e totbagni. Mentre nel caso in cui la seconda query avesse un codcategoria diverso dalla prima allora oltre alla somma dei campi citati precedentemente bisognerebbe anche sommare il campo totstrutture.

Come si può fare tutto cio?


Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com
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