获取访问时发生的最大值和月份和小时

时间:2015-06-16 14:44:48

标签: sql ms-access-2013

**我有下表:

ClientID  ClientName  Power   Date        Month Hour
123456    aaa         558     11/2/2014   11    5
123456    aaa         1558    11/2/2014   11    6
123456    aaa         1238    11/2/2014   11    7
123456    aaa         458.48  11/2/2014   11    8
789000    bbb         800.48  11/2/2014   11    5
789000    bbb         190.10  11/2/2014   11    6
789000    bbb         909     11/2/2014   11    7
789000    bbb         405     11/2/2014   11    8
777888    ccc         702     11/2/2014   11    1

我试图获取特定月份和年份的clientid,clientname,max(power),月份和小时,我尝试了几个查询,我得到的距离越近:

SELECT clientid, clientname, max(max_power), date, hour
FROM (SELECT clientid, clientname, max(Power) AS max_power, date, hour FROM 
tabledata WHERE month(date) = 11 and year(date) = 2014 
GROUP BY clientid, clientname, date, hour)  AS t
GROUP BY clientid, clientname, date, hour;

但我得到了所有不同的时间,我只想要每个客户的最大值的日期和小时。

任何人都可以帮助我。

1 个答案:

答案 0 :(得分:1)

这样的事情:

select A.clientid, A.clientname, A.power, A.date, A.hour
from tabledata A
JOIN
(
    SELECT clientid, max([power]) as max_power
    from tabledata
    group by ClientID
) as B on A.ClientID = b.ClientID and A.[power] = B.max_power