2014-08-28 63 views
0

我有這樣的查詢:輸出求和

SELECT 
case [Group] 
    when 1 then 'in' 
    when 0 then 'out' 
    end as traffic 

FROM [GW_Test_Back_Up].[dbo].[ARC_Calls_ReportView] 

與含進/出流量多行,但我真正想要的是隻有兩排,一個用於創建一個新列輸入和輸出之和的總和。我被困在我將如何做到這一點。

+0

兩行或兩列? – 2014-08-28 19:50:21

回答

2

我相信你是後:

SELECT 
SUM(CASE WHEN [Group] = 1 then 1 ELSE 0 END) AS InCount, 
SUM(CASE WHEN [Group] = 0 then 1 ELSE 0 END) AS OutCount 
FROM [GW_Test_Back_Up].[dbo].[ARC_Calls_ReportView] 

或者,也許這樣的:

SELECT 'InCount' AS Type, 
SUM(CASE WHEN [Group] = 1 then 1 ELSE 0 END) AS InCount 
FROM [GW_Test_Back_Up].[dbo].[ARC_Calls_ReportView] 
UNION ALL 
SELECT 'OutCount' AS Type, 
SUM(CASE WHEN [Group] = 0 then 1 ELSE 0 END) AS OutCount 
FROM [GW_Test_Back_Up].[dbo].[ARC_Calls_ReportView] 

編輯:

SELECT 
CASE WHEN m.InCount > 10 THEN 'High' ELSE 'Low' END AS InCountStatus 
CASE WHEN m.OutCount > 10 THEN 'High' ELSE 'Low' END AS OutCountStatus 
FROM 
(
    SELECT 
    SUM(CASE WHEN [Group] = 1 then 1 ELSE 0 END) AS InCount, 
    SUM(CASE WHEN [Group] = 0 then 1 ELSE 0 END) AS OutCount 
    FROM [GW_Test_Back_Up].[dbo].[ARC_Calls_ReportView] 
) m 
+0

兩種方式都可以正常工作,謝謝。現在,如果我更感興趣在查詢中稍後使用InCount和OutCount作爲變量,並且我不需要在表中實際顯示它們。就像OutCount大於100一樣...... – eltel2910 2014-08-28 20:05:36

+0

@ eltel2910,請參閱我的編輯瞭解如何使用「InCount」和「OutCount」的示例。您將不得不在另一個查詢中包裝查詢以通過別名訪問它們。 – Linger 2014-08-28 20:20:56

+0

你使用的是什麼RDBMS,所以我可以正確地標記這個問題。 – Linger 2014-08-28 20:29:43