2013-02-22 70 views
0

我HQL查詢時讓我頭疼,我希望友好的HQL嚮導在那裏誰可以提供幫助。集團與數查詢在HQL

我想我正在嘗試做一些非常簡單的事情,但無法理解這一切。

我想對一些數據進行分組和計數,以便將其呈現在表格中,並認爲我需要某種嵌套查詢,但無法弄清楚實現方式。

基本上我有具有關係到被用作查找(clienttype)和(clientsex)其它表的表(客戶機)。關係是1-m。我想按類型對客戶進行分組,然後有一個列數的男性,另一個統計女性。 e.g

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