2013-02-22 2 views
0

나는 두통을 불러 일으키는 HQL 쿼리를 가지고 있으며, 도움을 줄 수있는 친숙한 HQL 마법사가 있기를 바라고 있습니다.HQL에서 그룹 및 카운트 쿼리

나는 정말로 단순한 것을하려고 노력하고 있지만 그것을 모두 짐작할 수는 없다고 생각합니다.

일부 데이터를 그룹화하고 계산하여 테이블에 표시하고 일부 유형의 중첩 된 쿼리가 필요하다고 생각하지만이를 수행하는 방법을 파악할 수 없습니다.

기본적으로 조회 (clienttype) 및 (clientsex)로 사용되는 다른 테이블과 관계가있는 테이블 (클라이언트)이 있습니다. 관계는 1-m입니다. 저는 유형별로 고객을 그룹화 한 다음, 수를 세는 칼럼과 또 다른 세는 암컷을 갖고 싶습니다. 예 :

Type | males | females 

type A | x  | x 

type B | x  | x 

나는 남성 또는 여성을 얻기 위해 쿼리를 수행 할 수 있지만 두 번째 열을 얻는 방법을 알아낼 수는 없습니다.

희망이 있으며, 가능하고 누군가가 도울 수 있기를 바랍니다.

많은 감사,

크레이그


쿼리 그냥 수컷 얻을 수 있습니다 :

SELECT a.clientStatus, COUNT(c.sex) 

FROM 

Tblclientstatus AS a RIGHT OUTER JOIN a.tblclients AS b 
LEFT OUTER JOIN b.tblsex AS c 

WHERE c.sex = 'male' 

GROUP BY a.clientStatus 

답변

0

당신은 때마다 섹스 "1"을 추가하는 경우가있을 수 있습니다. 다음과 같이 표시 :

SELECT a.clientStatus, 
COUNT(
case when c.sex = 'male' then 1 
     else 0 end 
) as males, 
COUNT(
case when c.sex = 'female' then 1 
     else 0 end 
) as females, 
FROM 
Tblclientstatus AS a RIGHT OUTER JOIN a.tblclients AS b 
LEFT OUTER JOIN b.tblsex AS c 
GROUP BY a.clientStatus