2012-08-05 3 views
0

확인이 속성 product_line_id날짜을 가진 모델이다 기록을 명령했다.SQL 쿼리

나는 검사 모델의 네 가지 경우가 있습니다. 그들은 모두 다른 날짜를가집니다. 두 제품 라인 1에 속하고, 다른 두 사람은 2

가 어떻게 그 제품 라인에 대한 가장 큰 날짜를 가진 각 제품 라인에 대해 하나 개의 수표를 반환하는 검사 모델에 대한 쿼리를 호출 할 제품 라인에 속해? 이처럼

+0

데이터베이스 열 이름을 '날짜'로 지정하는 것은 좋지 않습니다. SQL에서는 예약어이며 루비에서는 의미가 있습니다. – noodl

답변

0

내가 noodl에 동의 : 당신은 열의 이름으로 date를 사용해서는 안된다.

Check.select("id, product_line_id, max(date) as greatest_date").group(:product_line_id) 
+0

날짜로 max (date)를 사용해야했습니다. – TimeEmit

0

:

Check.group(:product_line_id).maximum(:date) 
+0

왜 그냥 해시가 아닌 레코드를 반환합니까? – TimeEmit

+0

인덱싱 목적으로 그렇게하는 것 같군요? 나는 그것을보기에는 조금 놀랐다. 당신이 ALL 기타 사항 서보 -OFF 지정하면 ('검사. *, 최대 오래된로 ('date')이') 당신 모두를 제공해야합니다. – noodl