Campi Calcolati Derivati

lunedì 16 febbraio 2009 - 17.35

Aragorn2004 Profilo | Newbie

Ciao, forse sarò imbranato io ma è un po' di tempo che provo e cerco ma nulla.
Il problema è questo devo fare una vista che mi raggruppi i record per Aliquota e quindi faccia la SUM di un campo (importo).
Quindi ho due campi A e SUM1

A questo aggiungo un terzo campo che mi calcola il prodotto tra A e SUM1: questo terzo campo lo chiamo TOT1
Fino a quì tutto OK.

Ora vorrei fare una quarta colonna che mi faccia SUM1-TOT1

E quì che SQL SERVER 2000 mi dice le colonne non sono referenziate.

Il mio problema è referenziare una colonna calcolata in un'altra colonna calcolata senza ripetere la funzione di calcolo

Il problema si bypassa se riporto per intero le operazioni richieste senza fare riferimento alla prima colonna calcolata.

Nel senso che al posto di SUM1 riporto la funzione di aggregazione sul campo (SUM (....) e al posto di TOT1 riporto la SUM(Col1*Col2).

Grazie per il tempo dedicato.

Grazie di nuovo.

Saluti-




lbenaglia Profilo | Guru

>Il mio problema è referenziare una colonna calcolata in un'altra
>colonna calcolata senza ripetere la funzione di calcolo

Ciao Franco,

Perché? A te cosa cambia?
Anche se specifichi due volte la funzione di aggregazione SUM(), SQL Server eviterà di ripetere l'operazione se le colonne aggregate sono le stesse.
Per inciso, quello che vorresti fare è possibile sono ricorrendo a subquery e/o tabelle derivate.

>Il problema si bypassa se riporto per intero le operazioni richieste
>senza fare riferimento alla prima colonna calcolata.
Ed è infatti quello che devi fare

>Grazie per il tempo dedicato.
Prego.

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

Aragorn2004 Profilo | Newbie

Grazie per la risposta. E' che ho un retaggio vecchio di Access che permetteva questo.
La cosa è molto utile quando hai calcolati complicati nell'aggregazione.
Quello proposto come esempio era stato ridotto come complessità.

Grazie ancora.
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5