2015-02-24 79 views
1

如何在一個合併兩個SQL Server查詢在一個

SELECT TOP 5 Sum([NumOfChats]) AS [NumOfChats] 
      ,[CaseTypeName] 
      ,[CaseSubTypeName] 
     FROM #Result2 
     GROUP BY [CaseTypeName] 
      ,[CaseSubTypeName] 

     SELECT Sum([NumOfChats]) AS [TotalNumOfChats]   
     FROM #Result2 

首先查詢sumerize前5 NumOfChats,第二個所有NumOfChats這兩個選擇結合起來。

所以我想在同一行,例如在獲得: 5,Some_CaseTypeName,Some_CaseSubTypeName,10(這是聊天的總NUM)

+6

僅供參考'TOP'沒有'ORDER BY'沒有給出的輸出順序的保證。 – 2015-02-24 14:15:42

回答

2

使用UNION ALL,選擇NULL在第二查詢來獲取相同數目列在第一個查詢:

SELECT TOP 5 Sum([NumOfChats]) AS [NumOfChats] 
      ,[CaseTypeName] 
      ,[CaseSubTypeName] 
     FROM #Result2 
     GROUP BY [CaseTypeName] 
      ,[CaseSubTypeName] 
UNION ALL 
     SELECT Sum([NumOfChats]) AS [TotalNumOfChats], NULL, NULL   
     FROM #Result2 
0
DECLARE @T int = (SELECT Sum([NumOfChats]) 
     FROM #Result2) 

    SELECT TOP 5 Sum([NumOfChats]) AS [NumOfChats] 
     ,[CaseTypeName] 
     ,[CaseSubTypeName] 
     ,@T [TotalNumOfChats]  
    FROM #Result2 
    GROUP BY [CaseTypeName] 
     ,[CaseSubTypeName] 
+0

請添加一些解釋 – Saifur 2015-02-24 22:33:27