2016-11-22 86 views
0

我一直在試圖優化我的一個更龐大的數據庫視圖。在條件不同的地方計算

目前,我只是使用子選擇5次來獲得公司ID的數量。

(Select count(id) from company table where prospecting.stage = 'qualify') as Qualify, 
(Select count(id) from company table where prospecting.stage = 'targetted') as Targetted, 

每家公司經過5個階段,我只是想算在單獨的列公司在每個階段由公司所在地的量。

我想在一個選擇中做到這一點,但我有點卡住了。

SUM(COUNT(CASE WHEN prospecting.stage = 'Qualify' THEN '1' ELSE '0' END)) as [Qualified] 
SUM(COUNT(CASE WHEN prospecting.stage = 'Targetted' THEN '1' ELSE '0' END)) as [Targetted] 

所以它結束了尋找這些方針的東西:

 Location | Stage: Qualify | Stage: Targetted | Stage 3 | Stage 4 | Stage 5 | Total 

不能對包含聚合或子查詢的表達式執行聚合函數。 -說得通。

所以我需要計算每個階段將prospecting.stage ='XYZ'放入不同行的Company.ID。

有什麼建議嗎? :(

+0

在您可能要提供你是什麼表信息的未來訪問和它們之間的關係 - !知道這使得它容易得多,以提供適當的答案 – jpw

回答

1

從焦炭中刪除該count功能和更改數據類型的情況下表現爲int你的表情應該是這樣的:

SUM(CASE WHEN prospecting.stage = 'Qualify' THEN 1 ELSE 0 END) as [Qualified] 
+0

噢,我的上帝,這是簡單的O_O – Justin

+1

感謝您的幫助,我清楚地瞭解我在那裏現在走錯了:) !非常感激。 :) – Justin