[英]SQL Server: combine two values in the same row
我有以下所有結果
ID Name Date Team Total#1 Total#2
1 Test_1 4/25/2011 Team_1 110 0
1 Test_1 4/25/2011 Team_2 20 0
1 Test_1 4/25/2011 Team_3 170 0
1 Test_1 4/25/2011 Team_1 0 151
1 Test_1 4/25/2011 Team_3 0 98
我希望合並每個團隊的結果。 有些重復的團隊名稱總計不同,而有些獨特的團隊名稱總計只有一個。
ID Name Date Team Total#1 Total#2
1 Test_1 4/25/2011 Team_1 110 151
1 Test_1 4/25/2011 Team_2 20 0
1 Test_1 4/25/2011 Team_3 170 98
有什么想法嗎?
SELECT Id, Name, Date, Team, SUM([Total#1]) [Total#1], SUM([Total#2]) [Total#2]
FROM YourUnionResult
GROUP BY Id, Name, Date, Team
只需使用聚合函數和GROUP BY
:
SELECT ID, Name, Date, Team, SUM(Total#1) as Total1, Sum(Total#2) as Total2
FROM Mytable
WHERE ...
GROUP BY ID, Name, Date, Team
這不行嗎?
select id,name,date,team,sum(Total#1) as Total#1,sum(Total#2) as Total#2
from Your table
group by id,name,date,team
使select... union select...
成為一個子查詢,然后“ outer”查詢對它發出一個group by。
假設由於某種原因標准分組不起作用,您可以這樣做
SELECT t1.id,
t1.name,
t1.DATE,
t1.team,
t1.total_1,
t2.total_2
FROM (SELECT id,
name,
DATE,
team,
somecomplicatedcalculation total_1
FROM your table) t1
LEFT JOIN (SELECT id,
name,
DATE,
team,
somecomplicatedcalculation total_2
FROM your table) t2
ON t1.id = t2.id
and t1.team = t2.team
您也可以對CTE
WITH t1
AS (SELECT id,
name,
DATE,
team,
somecomplicatedcalculation total_1
FROM your table),
t2
AS (SELECT id,
name,
DATE,
team,
somecomplicatedcalculation total_2
FROM your table)
SELECT *
FROM t1
INNER JOIN t2
ON t1.id = t2.id
and t1.team = t2.team
或對工會進行分組將有助於
SELECT id,
name,
DATE,
team,
SUM(total_1),
SUM(total_2)
FROM (SELECT id,
name,
DATE,
team,
somecomplicatedcalculation total_1,
0 AS total_2
FROM yourtable
UNION ALL
SELECT id,
name,
DATE,
team,
0 AS total_1,
somecomplicatedcalculation total_2
FROM yourtable) total
GROUP BY id,
name,
DATE,
team
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.