计算在查询中声明的两个临时列名的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
Run Code Online (Sandbox Code Playgroud)
如何计算grandtotal作为sum(total)+sum(total1)与声明的临时名称为查询执行的列名.
使用cte dos不支持重复的列名?
如何利用它来支持重复的列名
mar*_*c_s 22
你不能直接这样做 - 你需要使用像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
Run Code Online (Sandbox Code Playgroud)
这适用于SQL Server 2005及更高版本(以及其他一些支持CTE的数据库系统 - 这是ANSI标准).