2014-12-02 89 views
0

我很新的SQL查詢和我具有獲取列的最大問題下面Speedo的是我當前的查詢返回MAX後選擇

SELECT 
tblVehicle.Rego 
,tbljob.Speedo 
,tbljob.DateEntered 
from tblJob 
INNER JOIN tblVehicle 
on tbljob.Vehicle_ID = tblVehicle.ID 
    where JobType_ID = 2 
    order by Rego 

,輸出

Rego Speedo DateEntered 
000JKC 147729 2010-05-10 10:56:55.040 
000JKC 150145 2010-06-02 13:57:15.470 
000JKC 169553 2011-01-06 12:24:09.143 
000JKC 155149 2010-07-21 14:58:20.777 
000JKC 157882 2010-09-17 16:39:48.480 
000JKC 165660 2010-11-29 08:20:39.453 
000JKC 164339 2010-11-18 16:19:19.213 
000JKC 155149 2010-08-11 06:16:28.180 
000RQD 65 2011-11-21 09:27:31.693 
000RQD 6978 2012-03-06 15:18:06.987 
000RQD 6766 2012-02-24 13:28:47.603 
000RQD 12130 2012-08-28 09:29:18.027 
000RQD 12145 2012-08-27 14:57:17.330 
000RQD 21550 2013-04-15 19:30:30.160 
000RQD 23640 2013-05-22 16:16:33.880 

現在,我只是想在MAX(Speedo)僅限每個Rego。

回答

0

MAX()函數返回所選列的最大值。

SELECT 
tblVehicle.Rego 
, MAX(tbljob.Speedo) 
,tbljob.DateEntered 
from tblJob 
INNER JOIN tblVehicle 
on tbljob.Vehicle_ID = tblVehicle.ID 
    where JobType_ID = 2 
    order by Rego 
+0

用你的我得到以下錯誤列'tblVehicle.Rego'在選擇列表中無效,因爲它不包含在聚合函數或GROUP BY子句中。 – 2014-12-02 03:13:57

0

您需要使用GROUP BY

SELECT 
tblVehicle.Rego 
,MAX(tbljob.Speedo) as MaxSpeedo 
,MAX(tbljob.DateEntered) as MaxDate 
from tblJob 
INNER JOIN tblVehicle 
on tbljob.Vehicle_ID = tblVehicle.ID 
    where JobType_ID = 2 
    order by Rego 
GROUP BY Rego 

注:這可能不是達到你想要如果Speedo的繞回結果,最後日期沒有爲Speedo的最大值。在這種情況下,您會看到最高速度和最大日期,但它們來自不同的行。