2013-04-26 114 views
3

我將首先說表結構(不幸)被設置。從表中選擇幾個max()

我的目標是從查詢中選擇幾個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對每個作業的查詢。我開始查詢和低於是什麼,我希望能得到作爲結果

查詢

SELECT jrt.jobName, jrt.jobDepartment 
FROM jobReferenceTable 
WHERE jobDepartment = 'cleaning' 
JOIN jobList jl ON jr.jobID = jl.jobID 

結果

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

回答

2

試試這個;

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()是一個集合函數,這意味着結果集的其餘部分必須被分組。