select 문을 결과로 가져와 데이터베이스에 저장할 수 있도록 함수를 만들었습니다. 내가 그것을 실행하면 내 SELECT 문은 하나 개의 결과를 반환하지만 내가 가서 함수를 작성하는 데에 배치 할 때 나는 오류 얻을 :함수 SQL Server 2012를 만들 때 오류가 발생했습니다.
Only one expression can be specified in the select list when the
subquery is not introduced with EXISTS.
난 아직도 새로운 학습이고 내가 무엇에 어떤 도움을 주셔서 감사합니다 것을 잘못하고있다. 당신이 INT
RETURNS int
를 반환하는 기능을하고 싶습니다 당신은 DDL에서 지정한
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
을 여기
는 인라인 TVF을 좋아 보일 것 인 것이다 오류 자체 설명입니다. SELECT 문을 실행하고 출력하는 열의 수를 확인하십시오. 당신은 오직 하나만 가질 수 있습니다. – Kermit예, 이제 알 수 있습니다. 분명히 도와 주셔서 감사합니다. :) –