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

时间:2015-02-27 20:35:39

标签: sql group-by sql-order-by ms-access-2013 having

我真的需要帮助。

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

我希望附属教师处于查询结果的最底层!

这是我的例子: 我正在查询哲学,20名教师按字母顺序排列,但没有特别的顺序,结果包括任何一个人在他们的记录的部门1或部门2中拥有哲学以及任何简单地隶属于该部门的人。有些是在实际部门(部门1或部门2领域),但其他人只是附属于部门(隶属1 - 5领域)所有相互分散。

现在我想要查询查询结果以显示:拥有DEPT 1或DEPT 2 =哲学的教师,以及任何具有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]))

1 个答案:

答案 0 :(得分:0)

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

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))