如何正确编写复杂的逻辑条件?

问题描述

我在Access中有2个表:FACULTY和SGROUP。

FACULTY:

FACULTY

SGROUP:

SGROUP

我需要在一种情况下输出SGROUP.Grpno和FACULTY.FacNo ...

IIF (FACULTY.Fund> 20000 AND SGROUP.rating> 10) OR (faculty group from building 6 AND SGROUP.rating <70) OR (faculty group from building 5 AND SGROUP.rating> 40)

我了解他们想要我什么,但我绝对不明白如何在sql上构建复杂条件来解决此问题。

P.S:其余数据库表。

部门:

DEPARTMENT

老师:

TEACHER

主题

SUBJECT

房间:

ROOM

讲座:

LECTURE

解决方法

你在这里我的朋友:

select 
    *
from 
    lecture l
inner join
    teacher t on t.tchno = l.tchno
inner join 
    department d on d.depno = t.depno
inner join 
    faculty f on f.facno = d.facno
inner join 
    sgroup sg on sg.groupno = l.sbjno
inner join 
    room r on r.roomno = l.roomno
where     
    (f.Fund> 20000 AND sg.Rating> 10) OR 
    (r.Building = 6 AND sg.Rating <70) OR 
    (r.Building 5 AND sg.Rating> 40)