2016-10-04 2 views
-2

두 개의 데이터베이스가 있습니다. 표 1 (학생) 필드에는 StudentID, EmployeeClass, StudentName 필드가 있습니다. 여기서 EmployeeClass는 varchar (5)입니다. 표 2 (Employee)에는 EmployeeID, EmployeeName, Description 및 EmployeeClass 필드가 있습니다. 직원 클래스는 nvarchar (5)입니다.NULL을 표시하는 데이터베이스 값

으로 내가 선택 쿼리를 쓰고 때 직원 테이블의 모든 값이 NULL로 보여주고있다

  SELECT S.StudentID, 
       S.EmployeeClass, 
       S.StudentName 
      FROM Student AS S 
LEFT OUTER JOIN Employee AS E 
       ON CAST(S.EmployeeClass AS VARCHAR(5)) = E.EmployeeID 
      WHERE E.Description = 'ABC' 

? 그것을 고치는 방법

+1

왜 직원 클래스 == 직원 ID입니까? 그게 틀린 것 같아요 –

+0

또한 숫자를 문자열로 비교하지 마십시오 - 다른 숫자와 비교하려면 문자열을 숫자로 변환하십시오. –

+0

EmployeeID와 EmployeeClass 둘 다 nvarchar (5) – coder

답변

0

나는 당신의 script.column에서 join 조건이 잘못되었다고 생각한다. 'EmployeeClass'는 스크립트에서 'EmployeeID'를 참조한다.

SELECT S.StudentID, 
       S.EmployeeClass, 
       S.StudentName 
FROM Student AS S 
    LEFT JOIN Employee AS E 
      ON cast(S.EmployeeClass as varchar(5))= E.EmployeeClass 
      AND E.Description = 'ABC' 
+0

데이터 유형 varchar를 숫자로 변환하는 중 오류가 발생했습니다. – coder

+0

두 테이블의 직원 클래스 유형 데이터 유형은 무엇입니까? –

+0

첫 번째 테이블의 해당 varchar (5) '= 및 두 번째 테이블 nvarchar (5) – coder

관련 문제