2015-09-28 2 views
2

SP:Не равно оператор не работает

INNER JOIN StudentSubjectMapping SS ON SM.StudentID=SS.StudentID 
WHERE [email protected] OR @CourseID=0 
    AND [email protected] OR @ClassID=0 
    AND [email protected] OR @ClassSectionID=0 
    AND SD.StudentID <> SS.StudentID 
+1

что SD.StudentID .... SD –

+0

ИЛИ это до и .. – Shnugo

+0

При использовании или вы просто должны быть очень осторожны, как вы используете его в противном случае результаты будут неожиданными. –

ответ

4

Попробуйте добавить скобки () в следующем:

WHERE ([email protected] OR @CourseID=0) 
     AND 
     ([email protected] OR @ClassID=0) 
     AND 
     ([email protected] OR @ClassSectionID=0) 
     AND 
     SD.StudentID<>SS.StudentID 
+0

Извините, не работает. – Jithin

+0

@ Что-то не работает? Предоставьте образцы данных и желаемые результаты. –

+0

При поиске нажмите Мне нужно показать StudentID, которые не находятся в SS.StudentID. – Jithin

1

вы можете использовать NOT IN, чтобы выбрать те, StudentIDs, которого нет в StudentSubjectMapping

INNER JOIN StudentSubjectMapping SS ON SM.StudentID=SS.StudentID 
WHERE ([email protected] OR @CourseID=0) 
    AND ([email protected] OR @ClassID=0) 
    AND ([email protected] OR @ClassSectionID=0) 
    AND (SD.StudentID NOT IN (SELECT StudentID FROM StudentSubjectMapping)) 
+0

Почти справа. Не нужно использовать INNER JOIN. Спасибо за поддержку. – Jithin

1

Спасибо за поддержку. Ответ:

WHERE 
    ([email protected] OR @CourseID=0) 
    AND 
    ([email protected] OR @ClassID=0) 
    AND 
    ([email protected] OR @ClassSectionID=0) 
    AND 
    SM.StudentID NOT IN (SELECT StudentID FROM StudentSubjectMapping) 
+0

Да, и для записи: просмотрите приоритет оператора SQL; не менее И & OR ;) –

Смежные вопросы