Я создаю функцию, поэтому я могу взять результаты своего оператора select и поместить их в виде в нашей базе данных. Мой ВЫБРАТЬ оператор возвращает один результат, когда я запускаю его, но когда я иду и поместить его, чтобы создать функцию, я получаю ошибку:Ошибка при создании функции SQL Server 2012
Only one expression can be specified in the select list when the
subquery is not introduced with EXISTS.
я все еще новый и обучение и был бы признателен за любую помощь в том, что я делать неправильно.
CREATE FUNCTION CXi_Application
@Application nvarchar(255), @Wave nvarchar(255)
RETURNS int
AS
BEGIN
DECLARE @Return int
SET @Return =
(SELECT @Application, (
(sum(CASE WHEN overall_score IN (1) THEN 1 ELSE 0 END) + sum(CASE WHEN effective_score IN (1) THEN 1 ELSE 0 END) + sum(CASE WHEN easeuse_score IN (1) THEN 1 ELSE 0 END)) +
(sum(CASE WHEN overall_score IN (2) THEN 2 ELSE 0 END) + sum(CASE WHEN effective_score IN (2) THEN 2 ELSE 0 END) + sum(CASE WHEN easeuse_score IN (2) THEN 2 ELSE 0 END)) +
(sum(CASE WHEN overall_score IN (3) THEN 3 ELSE 0 END) + sum(CASE WHEN effective_score IN (3) THEN 3 ELSE 0 END) + sum(CASE WHEN easeuse_score IN (3) THEN 3 ELSE 0 END)) +
(sum(CASE WHEN overall_score IN (4) THEN 4 ELSE 0 END) + sum(CASE WHEN effective_score IN (4) THEN 4 ELSE 0 END) + sum(CASE WHEN easeuse_score IN (4) THEN 4 ELSE 0 END)) +
(sum(CASE WHEN overall_score IN (5) THEN 5 ELSE 0 END) + sum(CASE WHEN effective_score IN (5) THEN 5 ELSE 0 END) + sum(CASE WHEN easeuse_score IN (5) THEN 5 ELSE 0 END)))/
(count(overall_score) + count(effective_score) + count(easeuse_score) * 1.00)
FROM FY14_DataMerge
WHERE [Status] = 'Completed' AND [Application] = @Application AND [Wave] = @Wave);
-- Return the result of the function
RETURN @Return
END
GO
ошибка сам объяснение. Запустите инструкцию 'SELECT' и посмотрите, сколько столбцов она выводит. У вас может быть только один. – Kermit
Да, я вижу это сейчас. Спасибо, что помогли мне с очевидным. :) –