2017-05-08 89 views
0

我有以下表1,我希望將一組中的潛在客戶總金額分組。 然而,在Won階段,所有錢都處於贏得狀態的團隊面臨困難。 enter image description here如何根據不同條件進行分組

我想結果如下圖所示:

enter image description here

SELECT 
name,sum(value),stagename 
    FROM table1 
    group by name,stagename 

回答

3

我想你想聚集在statusstagename列的組合:

select name, 
     (case when status = 'won' then 'won' else stagename end) as stagename, 
     sum(value) 
from table1 
group by name, 
     (case when status = 'won' then 'won' else stagename end); 
+0

只是在想這個問題。 +1 – GurV

+1

嗨@sara如果這個或任何答案已經解決了您的問題,請點擊複選標記考慮[接受它](https://meta.stackexchange.com/q/5234/179419)。這向更廣泛的社區表明,您已經找到了解決方案,併爲答覆者和您自己提供了一些聲譽。沒有義務這樣做。 – GurV

+1

@GurwinderSingh那麼沒有義務,但接受答案是重要的,因爲旁邊的聲望,其他停止試圖找到解決方案。 –

2

你可以像這樣的查詢:

select name, stagename, sum(value) from #yourstages 
    where status = 'open' 
    group by name, stagename 

union all 

select name, status as StageName, sum(value) from #yourstages 
    where status = 'won' 
    group by name, status 
1

對於多藝名值:

SELECT T1.name, CASE WHEN T1.STAGENAME=T2.STATUS THEN SUM(T2.VALUE) ELSE SUM(T1.value) END AS VALUE, T1.STAGENAME 
    FROM table1 T1 LEFT JOIN TABLE1 T2 ON T2.STATUS=T1.STAGENAME 
    group by T1.name,T2.STATUS, T1.stagename 
相關問題