查询结果的高级排序或分组(有?),Access 2013

Advanced Ordering Or Grouping Of Query Results (having?), Access 2013

我真的需要帮助。

我有一份教职员工名单,可以分配给一个部门,也可以只隶属于该部门。 我正在尝试查询但对结果进行排序,以便出现在指定部门的任何教职员工首先出现在列表中,而与指定部门有关联的任何人都位于查询结果的底部。

我希望所属院系在查询结果的最下方!

这是我的例子: 我正在查询哲学,显示了 20 名教职员工,按字母顺序排列但没有特定顺序,结果包括在其记录的第 1 部门或第 2 部门拥有哲学的任何人以及与该部门有关联的任何人。有些在实际部门(部门 1 或部门 2 领域),但其他人只是隶属于部门(隶属关系 1 - 5 领域),所有这些都相互分散。

现在我希望对查询结果进行排序以显示:具有 DEPT 1 或 DEPT 2 = Philosophy 的教员,以及任何具有 Affiliations = Philosophy 的教员单独位于列表底部。

我该怎么做?我已经尝试过 Order By 和 Having,我已经尝试过 Group By...似乎没有什么能按我想要的方式工作..我不认为我正在使用编写代码。 请,请帮助我。我已经坚持了几个小时。

请帮忙 - 这是我的查询代码:

    SELECT listOfAllFaculty.[ID], listOfAllFaculty.[lastName], listOfAllFaculty.[firstName], listOfAllFaculty.[middleInitialMiddleName], listOfAllFaculty.[position], listOfAllFaculty.[emeritusPosition], listOfAllFaculty.[department1], listOfAllFaculty.[department2], listOfAllFaculty.[school1], listOfAllFaculty.[school2], listOfAllFaculty.[affiliation1], listOfAllFaculty.[affiliation2], listOfAllFaculty.[affiliation3], listOfAllFaculty.[affiliation4], listOfAllFaculty.[affiliation5], listOfAllFaculty.[degree], listOfAllFaculty.[specialty], listOfAllFaculty.[awards], listOfAllFaculty.[other]
FROM listOfAllFaculty
WHERE (((listOfAllFaculty.department1)=[Type Department1])) Or (((listOfAllFaculty.department2)=[Type Department2])) Or (((listOfAllFaculty.affiliation1)=[Type Affiliation1])) Or (((listOfAllFaculty.affiliation2)=[Type Affiliation2])) Or (((listOfAllFaculty.affiliation3)=[Type Affiliation3])) Or (((listOfAllFaculty.affiliation4)=[Type Affiliation4])) Or (((listOfAllFaculty.affiliation5)=[Type Affiliation5]))

也许这就是您在 order by 子句中使用 iif 寻找的内容:

SELECT listOfAllFaculty.[ID], listOfAllFaculty.[lastName], ...
FROM listOfAllFaculty
WHERE (((listOfAllFaculty.department1)=[Type Department1])) Or    
    (((listOfAllFaculty.department2)=[Type Department2])) Or 
    (((listOfAllFaculty.affiliation1)=[Type Affiliation1])) Or
     (((listOfAllFaculty.affiliation2)=[Type Affiliation2])) Or
     (((listOfAllFaculty.affiliation3)=[Type Affiliation3])) Or
     (((listOfAllFaculty.affiliation4)=[Type Affiliation4])) Or
     (((listOfAllFaculty.affiliation5)=[Type Affiliation5]))
ORDER BY 
    IIF(listOfAllFaculty.department1=[Type Department1],0,
        IIF(listOfAllFaculty.department2=[Type Department2],0,1))