Для расчета суммы () двух псевдонимов именованных столбцов - в sql - PullRequest
12 голосов
/ 14 октября 2010

Для вычисления суммы () двух имен временных столбцов, объявленных в запросе - в 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 не поддерживает повторяющиеся имена столбцов?

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

Ответы [ 2 ]

20 голосов
/ 14 октября 2010

Вы не можете сделать это напрямую - вам нужно использовать что-то вроде CTE (Common Table 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).

0 голосов
/ 05 февраля 2013
select convert(int, first)+ convert(int,second) as total from test1 

в этом первом и втором типе поля - nvarchar, а если поля в integer, то

select first+second as total from test1 , test1

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

...