Raggruppare in un uunico risultato due valori provenienti da due selec...

mercoledì 01 ottobre 2008 - 14.29

trinity Profilo | Guru

buongiorno,
ho questo codice:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

questo codice mi restituisce due valori separati in questo modo:

totarrivi
100

totpresenze
450

io invece vorrei che uscisse così:

totarrivi - totpresenze
100 450


devo creare una tabella temp e fare prima una insert del primo dato e poi update del secondo?
Oppure c'è un'altra soluzione?

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

lbenaglia Profilo | Guru

>Oppure c'è un'altra soluzione?
Puoi fare la UNION tra i due result set.

Ciao!

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

trinity Profilo | Guru

>>Oppure c'è un'altra soluzione?
>Puoi fare la UNION tra i due result set.
si lo sapevo ma se faccio la union i dati mi escono in due righr uno sotto l'altro per intenderci, io invece voglio tutto su la stessa riga ma due colonne

ossia

totarrivi - totpresenze
100 450


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

lbenaglia Profilo | Guru

>si lo sapevo ma se faccio la union i dati mi escono in due righr
>uno sotto l'altro per intenderci, io invece voglio tutto su la
>stessa riga ma due colonne

Certo, ma se fai una SELECT a monte applicando la funzione di aggregazione MAX() alle due colonne, "accorperai" le due righe eliminando i NULL.

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

trinity Profilo | Guru

Scusa ma non ti seguo!
attualmente con il mio codice mi esce facendo una union una colonna con due righe esempio:

Totali
100
450

invece vorrei che uscissere due colonne ed una sola riga nella quale vi sono i due risultati.
Con il Max che mi dici tu potrei farlo?

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

lbenaglia Profilo | Guru

>Con il Max che mi dici tu potrei farlo?
Certo:

WITH CTE_Union AS ( SELECT 100 AS Col1, 0 AS Col2 UNION ALL SELECT 0, 450 ) SELECT MAX(Col1) AS Col1, MAX(Col2) AS Col2 FROM CTE_Union; /* Output: Col1 Col2 ----------- ----------- 100 450 (1 row(s) affected) */

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

trinity Profilo | Guru

Ok grazie!!!

senti e se volessi sommare i valori delle due righe? come dovrei fare?

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