SELECT SUM() FROM (SELECT (SELECT())

У меня есть правильный рабочий T-SQL- script в этой форме

SELECT  columnA
        AS
        'numbers'
FROM    tableA
WHERE   clause

Этот script дает мне как один столбец, называемый числами, целых чисел. Я хочу их суммировать.

Вызов вышеуказанных строк script 'Я попробовал следующую настройку

SELECT  SUM(numbers)
FROM    (
            script
        )

Чтение выберите count (*) из select Я предполагал, что это сработает, однако это не так. Я продолжаю получать "Неверный синтаксис рядом".

Я не знаю, важно ли это, но вот здесь имя columnA само составлено выражением SELECT.

Ответ 1

Вам нужен псевдоним в подзапросе:

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

Ответ 2

Нет абсолютно никакой проблемы, чтобы достичь того, чего вы хотите. Мы не видим ваш запрос entier, но самая распространенная проблема заключается в том, что люди забывают добавить псевдоним в свой вложенный оператор 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