2010-10-14 6 views
12

Для расчета суммы() двух имен временных столбцов, объявленных в запросе - в SQLЧтобы вычислить сумму() два псевдонима с именем колонки - в SQL

stud таблица имеет только две колонки m1,m2. total и total1 указывается как временное имя.

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

Как рассчитать grandtotal, как sum(total)+sum(total1) с именем столбца, объявленного имени темп для запроса выполнить.

С помощью cte dosn't поддерживать дубликаты имен столбцов?

Как использовать его для поддержки дубликатом ColumnName

+0

Если вы отправляете код или XML, ** пожалуйста ** выделите эти строки в текстовом редакторе и нажмите кнопку «код» (101 010) на панели инструментов редактора, чтобы красиво отформатировать и выделить синтаксис! –

ответ

18

Вы не можете сделать это прямо - вам нужно использовать что-то вроде CTE (Common Таблица Expression) - как это:

;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 

это имя таблицы.

Смежные вопросы