Sum con funzione max

mercoledì 12 gennaio 2011 - 13.14
Tag Elenco Tags  VB.NET  |  Windows XP  |  Visual Studio 2008  |  SQL Server 2008 R2

memmo77 Profilo | Expert

Salve. Da una prima select ottengo questi dati:

voce|valore1|valore2
100|426.000000000000| 0.000000000000
100|45000.0000000000| 47000.000000000000
100|71000.0000000000|70000.000000000000
100|225000.000000000|228000.000000000000

Nella mia select vorrei calcolare per la voce 100 il totale che è dato da:

totale=totale + max(valore1;valore2)

Possibilmente senza ciclare, come posso scriverla? Grazie

lbenaglia Profilo | Guru

>Salve. Da una prima select ottengo questi dati:
>
>voce|valore1|valore2
>100|426.000000000000| 0.000000000000
>100|45000.0000000000| 47000.000000000000
>100|71000.0000000000|70000.000000000000
>100|225000.000000000|228000.000000000000
>
>Nella mia select vorrei calcolare per la voce 100 il totale che
>è dato da:
>
>totale=totale + max(valore1;valore2)
Non ho capito, puoi postare il resultset che vorresti ottenere con quei dati?

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

cenere Profilo | Senior Member

ciao,

posta la struttura della tabella, il risultato che vuoi se ho ben capito dovrebbe essere qualcosa come....

select (SUM(valore1) + SUM(valore2)) as totale
from tuaTabella
where voce = 100

ugk111 Profilo | Junior Member

Se ho capito il tuo probelma questa potrebbe essere una soluzione. ho creato una tabella con i tre valori da te indicati ed ho quindi creato una query in autocomposizione per ricerca duplicati dove vengono visualizzati i solo i seguenti campi :voce - valore1 - valore2 e nella quarta colonna Espr1: Somma([valore1]+[valore2])
nella riga Formula il campo voce impostato a raggruppamento ed i campi voce1 e vove2 impostati a somma ed il quarto campo impostato come Espressione
la versione sql è la seguente
SELECT Tabella1.voce, Sum(Tabella1.valore1) AS SommaDivalore1, Sum(Tabella1.valore2) AS SommaDivalore2, Sum([valore1]+[valore2]) AS Espr1
FROM Tabella1
GROUP BY Tabella1.voce
HAVING (((Tabella1.voce) In (SELECT [voce] FROM [Tabella1] As Tmp GROUP BY [voce] HAVING Count(*)>1 )))
ORDER BY Tabella1.voce;
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