У меня есть следующий запрос:INVALID COLUMN? SQL Server 2012
SELECT
'button_flag' = CASE
WHEN (can_assign_supervisor = 1 AND (SUM(ISNULL(auto_assign_cap, 0) - ISNULL(assigned_today_cap, 0)) > 0))
THEN 1
ELSE 0
END
FROM processor
WHERE prsn_pk = 36381
Когда я пытаюсь выполнить запрос, я получаю сообщение об ошибке:
Msg 8120, Level 16, State 1, Line 3
Column 'processor.can_assign_supervisor' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Я не ясно, почему эта ошибка происходит.
can_assign_supervisor
является BITauto_assign_cap
иassigned_today_cap
являются ИНТprsn_pk
является первичным ключом
Любые советы?
Спасибо
вы используете SUM() как агрегированную функцию, поэтому вы должны добавить предложение GROUP BY с неагрегированными столбцами. – wxyz