计算在查询中声明的两个临时列名称的sum()-在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不支持重复的列名吗?
如何利用它来支持重复的列名
最佳答案
您不能直接做到这一点-您需要使用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标准)中也有效。