SQL 服务器查询返回 table 中的所有行而不是 MAX()

SQL Server Query returning all rows in a table instead of MAX()

我正在尝试 return 为清单中的每件设备读取 highest/last 小时表读数,但是,下面的查询列出了所有使用 MAX 的实例。

select      sil.[Posting Date], 
            mre.[Service Item No_], 
            sil.[Job Code], 
            max(mre.[Reading]) as 'Hour Reading'     

from        [$meter reading entry]mre left outer join
            [$service invoice line]sil on mre.[Service Item No_] = sil.[Service Item No_]

where       sil.[Job Code] = 200


group by    mre.[Service Item No_], sil.[Job Code], mre.[Reading], sil.[Posting Date]

发生这种情况是因为 mre.[Reading] 也用在 GROUP BY 子句中。要获得所需的结果,请从 GROUP BY 中删除 mre.[Reading] 并重试。

select      sil.[Posting Date], 
            mre.[Service Item No_], 
            sil.[Job Code], 
            max(mre.[Reading]) as 'Hour Reading'     

from        [$meter reading entry]mre left outer join
            [$service invoice line]sil on mre.[Service Item No_] = sil.[Service Item No_]

where       sil.[Job Code] = 200


group by    mre.[Service Item No_], sil.[Job Code], sil.[Posting Date]