1

私はこの選択ステートメントを持っています::

    SELECT [Course ID], [Course name] 
FROM Courses 
WHERE [Course ID] NOT IN 
(SELECT [Course ID] from student_courses sc
  INNER JOIN Courses c ON sc.[course ID] = c.[course ID] 
  WHERE [student ID] = 1
  AND (c.[course start time] not BETWEEN Courses.[course start time] AND Courses.[course end time]
  OR c.[course end time] not BETWEEN Courses.[course start time] AND Courses.[course end time]))

次のエラーが発生し続けます::

日付と時刻のデータ型は、以下の演算子では互換性がありません....

あいまいな列名「コース ID」

これらのエラーを修正し、実際にデータ型の列を比較するにはどうすればよいtime(7)ですか?

4

1 に答える 1

2

日付を時刻に変換する必要があります。

CAST(<YOUR DATE> AS time(7))

あいまいな列を取り除くには、student_coursesとcoursesの両方に。があるため、テーブルにエイリアスを追加する必要がありますcourseId

それを実行しないと、問題はサブクエリでここにあるように見えます

select **c.[Course ID]** from student_courses sc inner join Courses c on sc.[Course ID] = c.[Course ID]
    where [student ID]=@val1
    AND ((c.[Course start date] between Courses.[Course start date] and Courses.[Course end time])
    or (c.[Course end time] between Courses.[Course start time] and Courses.[Course end time]) 
    )
于 2012-12-12T14:37:56.963 に答える