2010-10-14 44 views
12

要計算在查詢聲明瞭兩個臨時列名的總和() - 在SQL要計算總和()兩個別名命名的列 - 在SQL

stud表只有兩列m1,m2。總數和總數1作爲臨時名稱給出。

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

如何計算grandtotalsum(total)+sum(total1)與聲明的臨時名稱爲查詢執行的列名。

隨着CTE不到風度支持重複的列名?

如何利用它來支持重複列名

+0

如果您發佈的代碼或XML,** **請在高亮文本編輯器的線和編輯器工具欄上的「代碼」按鈕(101 010)點擊很好的格式和語法高亮顯示! – 2010-10-14 10:32:58

回答

18

你不能直接這樣做 - 你需要使用類似的CTE(公共表表達式) - 這樣的:

;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 

這適用於SQL Server 2005及更新版本(以及其他一些支持CTE的數據庫系統 - 這是ANSI標準)。

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

在該第一和第二場是數據類型爲nvarchar,如果字段在integer然後

select first+second as total from test1 , test1 

是表名。