我有一个正确的工作T-SQL脚本
SELECT columnA
AS
'numbers'
FROM tableA
WHERE clause
这个脚本给我一个整数列,称为数字。我想总结这些。
调用上面的行'脚本'我尝试了以下设置
SELECT SUM(numbers)
FROM (
script
)
阅读select count(*) from select我认为这可行,但事实并非如此。我一直得到“语法不正确。”
我不知道它是否重要,但在这里名为columnA本身由SELECT语句决定。
答案 0 :(得分:18)
您需要子查询上的别名:
SELECT SUM(numbers)
FROM
(
script -- your subquery will go here
) src -- place an alias here
所以你的完整查询将是:
select sum(numbers)
from
(
SELECT columnA AS numbers
FROM tableA
WHERE clause
) src
答案 1 :(得分:5)
完全没有任何问题可以达到你想要的效果。我们没有看到您的查询,但最常见的问题是人们忘记在其嵌套的select
语句中添加别名。看看这个完美运作的样本:
select sum(col1) as sum1
from ( select col1
from ( select 1 col1 union all select 2 union all select 3 ) tmp
) tmp2
根据OP,这是您的最终查询:
SELECT SUM(numbers)
FROM (
SELECT columnA
AS
'numbers'
FROM tableA
WHERE clause
) tmp
答案 2 :(得分:0)
SELECT SUM(x.ColumnA) as ColumnName FROM
(SELECT ColumnA FROM TableName) x
请记住,您不能在括号内的查询上使用ORDER子句。
使用订单条款会给您以下错误:
消息1033,级别15,状态1,第30行除非还指定了TOP或FOR XML,否则ORDER BY子句在视图,内联函数,派生表,子查询和公用表表达式中无效。 em>