2013-03-25 98 views
2

從蜂巢的總和,我想從簡單的表看起來以下蜂巢:無法獲取不同類別

custername Prjtid Hours Billable_Status 

ABC   AB123 10  Billable 

ABC   AB123 20  Non-Billable 

ABC   AC123 10  Billable 

ABC   AB123 30  Billable 

PQR   PQ123 20  Billable 

PQR   PQ123 30  Billable 

PQR   PQ123 20  Non-Billable 

現在我想顯示類似的結果,

Custername, Prjtid, (Total number of billable), (total number of non-billable).

實施例:

ABC, AB123, 40, 20

PQR, PQ123, 50, 20

我能夠獲得收費或不收費但不在一起。

任何人都可以請建議如何繼續這種情況?

問候,

拉吉

回答

2

集團通過應該給你需要的東西:

SELECT Custername, Prjtid, 
SUM(CASE WHEN Billable_Status = 'Billable' THEN Hours ELSE 0 END), 
SUM(CASE WHEN Billable_Status = 'Non-Billable' THEN Hours ELSE 0 END) 
FROM table 
GROUP BY Custername,Prjtid; 
+0

按列刪除不需要的組以獲得答案! – 2013-03-25 12:15:27

+0

嗯,你錯了。改變之後會出現SemanticException!如果不包含在組中,則不能顯示沒有聚合函數的字段:/。 – www 2013-03-25 13:00:09

+0

Ohh,對不起,我已經用MySql測試過了,請回滾,並添加了'o'而不是'0'。 – 2013-03-25 13:03:19

0

可能被關閉的話題,但與MySQL以下工作,

SELECT a.custername,a.Prjtid,a.billable_hours AS Billable ,b.not_billable_hours AS NonBillable FROM( SELECT custername,Prjtid,總和(小時)AS billable_hours FROM表WHERE Billable_Status = '可結算' GROUP BY custername)爲A,(SELECT custername,Prjtid,總和(小時)AS not_billable_hours FROM表WHERE 狀態='非Billable'GROUP BY custername)AS b WHERE a.custername = b.custername;