ID 번호 (systudentid)가 1 개인 매개 변수를 사용하는 저장 프로 시저가 있습니다.데이터에 여러 행을 병합하여 결과에 단일 행만 표시합니다.
이 절차는 관련 연락처 정보와 함께 학생 행지도 교수 (AC), 재정 상담사 (FC) 및 입학 상담원 (EC)의 3 행을 반환합니다. 3 명의 다른 사람들.
일부 학생에게는 같은 사람인 AC와 FC가 있지만 질문은 여전히 3 행을 반환합니다. 내 코드에서 나는 논리를 연결 (어떻게, 내가 SQL에 대한 초보자이야) 그래서 할 수
AdvisorType|AdvisorLastName|AdvisorFirstName|(other data)|systaffID
AC DOE JOHN ..... 12345
AC DOE JOHN ..... 12345
EC SMITH JANE ..... 45678
절차에 전달 된 systudentid는 AC와 FC 모두 같은 사람을 가진 학생을 식별 할 때 , 결과를 이렇게 표시합니다.
권고 자 유형이 "SSA"로 변경되고 이중 의무 상담원에 대한 레코드 중 하나만 리턴됩니다. 여기
AdvisorType|AdvisorLastName|AdvisorFirstName|(other data)|SystaffID
SSA DOE JOHN ...... 12345
EC SMITH JANE ...... 45678
내 선택 성명 : 내가 시도 할 수 있습니다 또는 Google (I 검색 해봤지만 내가 무엇을 알았다면 결과는 훨씬 더 유용
SELECT
SyStaffGroup.Descrip AS AdvisorType
,SyStaff.LastName AS AdvisorLastName
,SyStaff.FirstName AS AdvisorFirstName
,SyStaff.Phone AS AdvisorPhone
,SyStaff.Ext AS AdvisorExtention
,SyStaff.eMail AS AdvisorEMail
,SyStaff.SyStaffID AS SyStaffID
FROM SyStaff (NOLOCK)
JOIN SyAdvisorByEnroll (NOLOCK)
ON SyAdvisorByEnroll.SyStaffID = SyStaff.SyStaffID
JOIN SyStaffGroup (NOLOCK)
ON SyStaffGroup.SyStaffGroupID = SyAdvisorByEnroll.SyStaffGroupID
JOIN AdEnroll (NOLOCK)
ON AdEnroll.AdEnrollID = SyAdvisorByEnroll.AdEnrollID
JOIN SyStudent (NOLOCK)
ON AdEnroll.SyStudentID = SyStudent.SyStudentId
WHERE
SyStaff.Active = 1
--AND
--syadvisorbyenroll.adenrollid = (
--SELECT adenrollid from dbo.fn_student_enrollment_activeenrollmentlist (@systudentid)
--)
AND adEnroll.adEnrollID IN (
SELECT adEnrollID FROM dbo.fn_Student_Enrollment_ActiveEnrollmentList(@SyStudentID)
)
AND SyAdvisorByEnroll.AdvisorModule IN ('AD','FA')
AND SyStaffGroup.Descrip IN ('AC - Academic Counselor', 'FC - Finance Counselors', 'EC - Adm. Counselor With Reg')
UNION
SELECT DISTINCT
'Admissions Counselor' AS AdvisorType
,SyStaff.LastName AS AdvisorLastName
,SyStaff.FirstName AS AdvisorFirstName
,SyStaff.Phone AS AdvisorPhone
,SyStaff.Ext AS AdvisorExtention
,SyStaff.eMail AS AdvisorEMail
,SyStaff.SyStaffID AS SyStaffID
FROM systudent
INNER JOIN AmRep ON SyStudent.AMREpID = AmREp.AMREpid
INNER JOIN SyStaff ON SyStaff.SyStaffID = AmRep.AmRepID
WHERE Systudent.SYStudentid = @systudentid
어떤 힌트 또는 제안 된 방법 찾는) 크게 감사하겠습니다.