帮我写一条SQL语句,合并重复项数据,谢了

来源:百度知道 编辑:UC知道 时间:2024/06/16 00:58:18
机号 姓名 单位 正确题目 场次 XP WORD
4 陈东梅 化龙卫生院 39 第三场 97.5
4 陈东梅 化龙卫生院 30 第四场 75
22 陈先银 大木卫生院 40 第一场 100
22 陈先银 大木卫生院 40 第二场 100
5 程道丽 青峰卫生院 38 第三场 95
5 程道丽 青峰卫生院 35 第四场 87.5
13 储艳 军店卫生院 36 第一场 90
13 储艳 军店卫生院 32 第二场 80
7 付烈贵 红塔卫生院 36 第一场 90
7 付烈贵 红塔卫生院 40 第二场 100
6 郜国均 红塔卫生院 34 第一场 85
6 郜国均 红塔卫生院 33 第二场 82.5
24 龚仕江 大木卫生院 38 第一场 95
24 龚仕江 大木卫生院 40 第二场 100

数据如上所示,如何合并
谁能给个SQL更新查询的语句?
机号 , 姓名 , 单位 , 正确题目 场次 XP WORD
4 , 陈东梅 , 化龙卫生院 , 39 , 第三场 , 97.5
4 , 陈东梅 , 化龙卫生院 , 30 , 第四场 , , 75
22 , 陈先银 , 大木卫生院 , 40 , 第一场 , 100
22 , 陈先银 , 大木卫生院 , 40 , 第二场 , , 100
5 , 程道丽 , 青峰卫生院 , 38 , 第三场 , 95
5 , 程道丽 , 青峰卫生院 , 35 , 第四场 , , 87.5

比如像 陈东梅 的第二个成绩就是 WORD,我想让如何合并在一行上显示,数据比较多
注意,每个逗号都是

select t1.机号,t1.姓名,t1.单位,t1.XP,t2.WORD from
表名 t1 join 表名 t2
on t1.机号=t2.机号 and t1.姓名=t2.姓名
where t1.XP is not null and t2.WORD is not null

如果XP和WORD都是数字类型的字段:
select 机号,姓名,单位,正确题目,场次,sum(isnull(xp,0)),sum(isnull(word,0)) from 表 group by 机号,姓名,单位,正确题目,场次

如果XP和WORD都是字符:
select 机号,姓名,单位,正确题目,场次,sum(case when (xp is null) or (ltrim(rtrim(xp))='') then 0 else cast(xp as numeric(18,1)) end),sum(case when (word is null) or (ltrim(rtrim(word))='') then 0 else cast(word as numeric(18,1)) end) from 表 group by 机号,姓名,单位,正确题目,场次