Sql 从表中选择多个max()

Sql 从表中选择多个max(),sql,sql-server-2008-r2,max,Sql,Sql Server 2008 R2,Max,首先,我要说的是,表结构(不幸地)已经设置好了 我的目标是从查询中选择几个max()。假设我有以下表格 jobReferenceTable jobList jobID | jobName | jobDepartment | listID | jobID | _______|__________|_______________| _______|_________| 1 | dishes

首先,我要说的是,表结构(不幸地)已经设置好了

我的目标是从查询中选择几个
max()
。假设我有以下表格

          jobReferenceTable                     jobList
 jobID | jobName  | jobDepartment |        listID |  jobID  |
_______|__________|_______________|        _______|_________|
   1   | dishes   |   cleaning    |          1    |    1    |
   2   |vacumming |   cleaning    |          2    |    5    |
   3   | mopping  |   cleaning    |          3    |    2    |
   4   |countMoney|     admin     |          4    |    4    |
   5   | hirePpl  |     admin     |          5    |    1    |
                                             6    |    2    |
                                             7    |    3    |
                                             8    |    3    |
                                             9    |    1    |
                                             10   |    5    |
不知何故,我希望有一个从清理中选择作业ID的查询,然后显示每个作业的最新作业列表ID。我在下面开始了一个查询,下面是我希望得到的结果

质疑

结果

 jobName | jobDepartment | listID |
 ________|_______________|________|
    1    |    cleaning   |    9   |
    2    |    cleaning   |    6   |
    3    |    cleaning   |    8   |
试试这个

SELECT jrt.jobName, jrt.jobDepartment, MAX(jl.listID)
FROM jobReferenceTable AS jrt INNER JOIN jobList AS jl ON jrt.jobID = jl.jobID
WHERE jrt.jobDepartment = 'cleaning'
GROUP BY jrt.jobName, jrt.jobDepartment
据我所知,您只需要一个
MAX()
listID

MAX()

SELECT jrt.jobName, jrt.jobDepartment, MAX(jl.listID)
FROM jobReferenceTable AS jrt INNER JOIN jobList AS jl ON jrt.jobID = jl.jobID
WHERE jrt.jobDepartment = 'cleaning'
GROUP BY jrt.jobName, jrt.jobDepartment