2015-06-18 36 views
0

了分組行的總和我有查詢:計算已經在SQL

SELECT substring(Code,1,6) as Code 
From Table 
Group by substring(Code,1,6) 
Order By Code 

但是我想增加一列,是已在此查詢了分組行計算的總。例如:然後

 
Code Number 

S05080A 20 

S05080B 20 

S70331A 8 

S70331B 4 

將成爲:

 
Code Sum 

S05080 40 

S70331 12 

希望有人能幫助我在這一個,將不勝感激!

+4

嘗試增加',SUM(數量)'你'select'。 –

回答

3
SELECT substring(Code,1,6) as Code, 
     SUM(Number) AS [Sum] -- Add this line 

From Table 

Group by substring(Code,1,6) 

Order By Code 
+0

啊,太棒了,謝謝。正如我所希望的那樣工作。 – Revokez

1

你已經完成了艱難的工作 - 只需添加SUM(Number)作爲另一列和別名它

SELECT substring(Code,1,6) as Code, SUM(Number) AS Sum 
From Table 
Group by substring(Code,1,6) 
Order By Code 
1

您可以使用SUM,如下圖所示:

SELECT substring(Code,1,6) as Code, SUM(Number) as Sum 
From Table 
Group by substring(Code,1,6) 
Order By Code 
1

您可以使用這樣的:

CREATE TABLE #codes(code nvarchar(10), number int) 

INSERT INTO #codes(code, number) 
VALUES(N'S05080A', 20), (N'S05080B', 20), (N'S70331A', 8), (N'S70331B', 4) 

-- This is your part 
SELECT LEFT(code,6) as code,SUM(number) 
FROM #codes 
GROUP BY LEFT(code,6) 

DROP TABLE #codes 
0
declare @t table (Code varchar(10),number int) 
insert into @t(code,number)values ('S05080A',20), ('S05080B',20), ('S70331A',8),('S70331B', 4) 

SELECT SUBSTRING(Code, 1, NULLIF(DATALENGTH(Code)-1,-1)),SUM(number) 
From @t 
Group by SUBSTRING(Code, 1, NULLIF(DATALENGTH(Code)-1,-1)) 
Order By SUBSTRING(Code, 1, NULLIF(DATALENGTH(Code)-1,-1))