2015-10-30 53 views
0

我試圖返回庫存中每件設備的最高/最高小時表讀數,但是,下面的查詢列出了所有的實例,甚至使用MAX 。SQL Server查詢返回表中的所有行而不是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] 
+0

你的sil加入並不是真的在做什麼。當你取出連接並使用主表時會發生什麼? – SQLHound

回答

2

發生這種情況是因爲mre。[閱讀]用於GROUP BY子句中。要獲得理想的結果,請刪除mre。[從GROUP BY讀取]並重試。

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] 
+0

非常好。非常感謝。 –