2015-10-30 2 views
0

Im пытается вернуть показания счетчика самого высокого/последнего часа для каждой единицы оборудования в инвентаре, однако в нижеприведенном запросе перечислены все экземпляры, даже используя MAX ,SQL Server Query возвращает все строки в таблице вместо 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

Ваше соединение не на самом деле ничего не делает. Что происходит, когда вы вынимаете соединение и используете основную таблицу? – SQLHound

ответ

2

Это происходит потому, что mre. [Reading] используется также в предложении GROUP BY. Чтобы получить желаемый результат, удалите mre. [Чтение] из GROUP BY и повторите попытку.

+0

Отлично. Огромное спасибо. –

Смежные вопросы