2016-10-04 2 views
-2

私は2つのデータベースを持っています。 表1(Student)には、StudentID、EmployeeClass、StudentNameというフィールドがあります。ここで、EmployeeClassはvarchar(5)です。 表2(従業員)には、EmployeeID、EmployeeName、Description、およびEmployeeClassの各フィールドがあります。従業員クラスはnvarchar(5)です。NULLを表示するデータベース値

私はAS SELECTクエリを書いています:従業員表からすべての値が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で結合条件が間違っていると思う '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) '=と2番目のテーブルnvarchar(5) – coder

関連する問題