-- 各个选手的成绩表,WID是各个选手的参赛ID,WValue是各自的成绩;
DROP TABLE IF EXISTS #TT1
CREATE TABLE #TT1(
[ID] [int] IDENTITY(1,1) NOT NULL,[WID] [int] NULL,[WValue] [int] NULL
)
INSERT INTO #TT1
SELECT '1','2'
UNION ALL SELECT '2','12'
UNION ALL SELECT '3','8'
UNION ALL SELECT '4','4'
UNION ALL SELECT '5','11'
UNION ALL SELECT '6','4'
UNION ALL SELECT '7','3'
UNION ALL SELECT '8','2'
UNION ALL SELECT '9','3'
UNION ALL SELECT '10','12'
UNION ALL SELECT '11','3'
UNION ALL SELECT '12','9'
UNION ALL SELECT '13','9'
UNION ALL SELECT '14','2'
UNION ALL SELECT '15','11'
UNION ALL SELECT '16','1'
UNION ALL SELECT '17','3'
UNION ALL SELECT '18','6'
UNION ALL SELECT '19','1'
UNION ALL SELECT '20','1'
UNION ALL SELECT '21','5'
UNION ALL SELECT '22','17'
UNION ALL SELECT '23','3'
UNION ALL SELECT '24','3'
UNION ALL SELECT '25','4'
UNION ALL SELECT '26','2'
UNION ALL SELECT '27','16'
UNION ALL SELECT '28','3'
UNION ALL SELECT '29','2'
-- 已知编组,现在需要统计出 每一个编组的总成绩
DROP TABLE IF EXISTS #bianzu
CREATE TABLE #bianzu(
[GroupID] [int] IDENTITY(1,1), N1 int, N2 int, N3 int, N4 int, N5 int, N6 int, N7 int, N8 int, N9 int, N10 int
)
INSERT INTO #bianzu
SELECT '1'N1,'3'N2,'7'N3,'17'N4,'19'N5,'21'N6,'24'N7,'25'N8,'26'N9,'29'N10
UNION ALL SELECT'2','13','17','20','21','23','24','25','27','28'
UNION ALL SELECT'7','11','17','18','20','21','22','23','24','27'
UNION ALL SELECT'12','13','17','20','22','23','24','27','28','29'
UNION ALL SELECT'2','3','7','10','12','13','14','17','18','29'
想要得到的结果如下
-- 各个选手的成绩表,WID是各个选手的参赛ID,WValue是各自的成绩;
DROP TABLE IF EXISTS #TT1
CREATE TABLE #TT1(
[ID] [int] IDENTITY(1,1) NOT NULL,[WID] [int] NULL,[WValue] [int] NULL
)
INSERT INTO #TT1
SELECT '1','2'
UNION ALL SELECT '2','12'
UNION ALL SELECT '3','8'
UNION ALL SELECT '4','4'
UNION ALL SELECT '5','11'
UNION ALL SELECT '6','4'
UNION ALL SELECT '7','3'
UNION ALL SELECT '8','2'
UNION ALL SELECT '9','3'
UNION ALL SELECT '10','12'
UNION ALL SELECT '11','3'
UNION ALL SELECT '12','9'
UNION ALL SELECT '13','9'
UNION ALL SELECT '14','2'
UNION ALL SELECT '15','11'
UNION ALL SELECT '16','1'
UNION ALL SELECT '17','3'
UNION ALL SELECT '18','6'
UNION ALL SELECT '19','1'
UNION ALL SELECT '20','1'
UNION ALL SELECT '21','5'
UNION ALL SELECT '22','17'
UNION ALL SELECT '23','3'
UNION ALL SELECT '24','3'
UNION ALL SELECT '25','4'
UNION ALL SELECT '26','2'
UNION ALL SELECT '27','16'
UNION ALL SELECT '28','3'
UNION ALL SELECT '29','2'
-- 10人为一个编组,现在需要统计出 每一个编组的总成绩
select (WID-1)/10+1 as GroupID,WID,WValue from #TT1
直接分组统计:
select (WID-1)/10+1 as GroupID,sum(WValue) as WValue from #TT1
group by (WID-1)/10+1
给题主一个思路吧,用case when 的方式,把id全部换成成绩,小组的总成绩就是各行的和。