2010-10-14 9 views
12

Um sum() von zwei temporären Spaltennamen in Abfrage deklariert zu berechnen - in SQLUm sum() zwei Alias-Namen Spalten zu berechnen - in SQL

stud Tabelle nur zwei Spalten m1,m2 hat. total und total1 wird als temporärer Name angegeben.

select 
    m1, m2, 
    SUM(m1) + SUM(m2) as Total, 
    SUM(m1) + SUM(m2) as Total1 
from 
    stud 
group by 
    m1, m2 

Wie grandtotal als sum(total)+sum(total1) mit dem Spaltennamen als temporärer Namen auszuführen erklärt berechnen für die Abfrage.

Mit cte unterstützt doppelte Spaltennamen nicht?

Wie Gebrauch machen doppelte Spalten zu unterstützen

+0

Wenn Sie Code oder XML schreiben, ** bitte ** markieren Sie diese Zeilen im Texteditor und klicken Sie auf die Schaltfläche "Code" (101 010) auf der Editor-Symbolleiste, um schön formatieren und Syntax markieren Sie es! –

Antwort

18

Sie können es nicht direkt tun - so - Sie so etwas wie ein CTE (Common Table Expression) verwenden müssen:

;WITH sums AS 
(
    SELECT 
     m1, m2, 
     SUM(m1) + SUM(m2) as Total, 
     SUM(m1) + SUM(m2) as Total1 
    FROM 
     dbo.stud 
    GROUP BY 
     m1, m2 
) 
SELECT 
    m1, m2, 
    total, total1, 
    total+total1 AS 'GrandTotal' 
FROM 
    sums 

Dies funktioniert in SQL Server 2005 und höher (und auch in einigen anderen Datenbanksystemen, die CTEs unterstützen - was ein ANSI-Standard ist).

-1
select convert(int, first)+ convert(int,second) as total from test1 

in diesem ersten und zweiten Felddatentyp ist nvarchar, und, wenn die Felder in integer dann

select first+second as total from test1 , test1 

sind Tabellennamen.

Verwandte Themen