我有一个正确工作的T-SQL-script,格式如下
SELECT columnA
AS
'numbers'
FROM tableA
WHERE clause这个脚本给了我一个整数列,叫做numbers。我想把这些加起来。
调用上面的代码行'script‘,我尝试了以下设置
SELECT SUM(numbers)
FROM (
script
)阅读select count(*) from select时,我认为这是可行的,然而,事实并非如此。我一直收到“附近不正确的语法”的提示。
我不知道它是否重要,但在这里,名为columnA的语句本身是由SELECT语句生成的。
发布于 2012-11-07 02:12:03
您需要对子查询使用别名:
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发布于 2012-11-07 02:13:33
要实现你想要的,绝对没有任何问题。我们看不到您的整体查询,但最常见的问题是人们忘记向其嵌套的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发布于 2020-06-10 21:51:53
SELECT SUM(x.ColumnA) as ColumnName FROM
(SELECT ColumnA FROM TableName) x请记住,您不能在括号内的查询上使用ORDER子句。
使用order子句将产生以下错误:
消息1033,级别15,状态1,第30行ORDER BY子句在视图、内联函数、派生表、子查询和公用表表达式中无效,除非还指定了TOP或FOR XML。
https://stackoverflow.com/questions/13256813
复制相似问题