OUTER APPLY
블록에서 저장 프로 시저를 사용할 수없는 이유는 무엇입니까? 저장 프로 시저 dbo.GetTeacherId
에서 int 값을 가져와 WHERE
절에 사용해야합니다. 여기 내 코드 :OUTER APPLY 블록에서 저장 프로 시저 실행
USE [StudentsDb]
DECLARE @teacherIdOut int;
SELECT StudentLastName, StudentFirstName, StudentMiddleName, LessonName, Score, TLastName, TFirstName, TMiddleName
FROM Scores
JOIN Students
ON Scores.StudentId=Students.StudentId
JOIN Lessons
ON Scores.LessonId=Lessons.LessonId
OUTER APPLY
(
EXECUTE dbo.GetTeacherId 0, 0, @[email protected] -- here I get error
SELECT Teachers.TeacherLastName, Teachers.TeacherFirstName, Teachers.TeacherMiddleName
FROM Teachers
WHERE [email protected]
)T(TLastName, TFirstName, TMiddleName)
WHERE Score <=3
그리고 저장 프로 시저에서 값을 가져 오는 다른 방법이 있습니까? 여기 내 저장 프로 시저 dbo.GetTeacherId
:
USE [StudentsDb]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[GetTeacherId] @lessonId int, @groupId int, @teacherId int OUTPUT
AS
BEGIN
SET NOCOUNT ON;
SELECT @teacherId=GroupTeachers.TeacherId
FROM GroupTeachers
WHERE [email protected] AND [email protected]
END
: 여기
어떤 읽고 있습니다. –@NenadZivkovic 정말 고마워요! 모든 기능이 작동합니다! 당신의 대답을 나의 인정 된 대답으로 어떻게 확인할 수 있습니까? –
나는 몇 분 안에 대답으로 더 자세한 설명을 쓸 것이므로 그것을 받아 들일 수 있고 다른 사람들이이 질문에 비틀 거리게 할 수있다. –