2013-10-09 3 views
0

selectcount을 동시에 수행하려고합니다.어떻게 동시에 계산하고 선택할 수 있습니까?

이 내 코드입니다 :

@count = Policy.find(:all,:conditions=>['state= 0 AND deleted = 0'] 

####i want to count all the policies that has 1 client by document 

@count = Policy.count(:joins => :client,:conditions => ['doc_jur LIKE ? OR doc_nat LIKE ?', "%#{params[:doc]}%","%#{params[:doc]}%" ]) 

어떻게 한 줄 (하나 개의 동작)에서이 작업을 수행 할 수 있습니까?

내가 원하는 :

SELECT count(*) AS count_all FROM `policies` 
where state= 0 AND deleted = 0 
INNER JOIN `clients` ON `clients`.id = `policies`.client_id 
WHERE (doc_jur LIKE '%20535920746%' OR doc_nat LIKE '%20535920746%') 
+0

사용하는 레일의 버전? 2와 같은 문법처럼 보입니다 -이 중 일부는 최신 버전에서 더 쉽게 수행 할 수 있습니다 – house9

+0

예 버전 2이므로 2로 태그를 지정했습니다 –

+0

올바른 SQL 문을 지정 했습니까? 나는 당신을 올바르게 이해하고 있는가? 하나의 클라이언트 만 있고 양쪽 상태를 만족시키는 정책을 계산해야한다. '상태 = 0이고 삭제 된 값 = 0'이고 (doc_jur LIKE '% 20535920746 % OR doc_nat LIKE'% 20535920746 %)'? –

답변

0

이 시도 : 당신이

@count =Policy.count(:joins => :client,:conditions => ['policies.state=0 AND policies.deleted= 0 AND clients.doc_jur LIKE ? OR clients.doc_nat LIKE ?', "%#{params[:doc]}%","%#{params[:doc]}%" ]) 
0

이 루비를 수행

@policies = Policy.find(:all,:conditions=>['state= 0 AND deleted = 0']) 
count = @policies.length 
관련 문제