2016-02-22 50 views
1

这里我表看起来像在MS-SQL更新两个单列不同行

ID Name Mark1 Mark2 Grade 
1 ABC 50  75  A+ 
2 XYZ 0  15  A+ 
3 XYZ 20  0  B+ 

我需要的结果应该是这样的: -

ID Name Mark1 Mark2 
1 ABC 50  75 
2 XYZ 20  15 

如果ID,名称是比赛我需要在单行中显示Mark1 & Mark2值 ,但是等级不同,就像我必须更新 多行请帮助。

注意: - 在最终结果集中不需要等级,并且一旦值更新就不需要第三行,我们需要删除第三行。

在这里,我补充说: -

输入: -

ID Name Mark1 Mark2 Grade 

1 ABC 50  75  A+ 

2 XYZ 0  15  A+ 

3 XYZ 20  0  B+ 

4   ZZZ   30    0     B+ 

4   ZZZ   40    0     B+ 

4   ZZZ   50    0     B+ 

输出: -

ID Name Mark1 Mark2 Grade 

1 ABC 50  75  A+ 

2 XYZ 20  15  A+ 

4 ZZZ  30    0     B+ 

4 ZZZ   40    0     B+ 

4 ZZZ   50    0     B+ 

回答

1

这可以通过简单地用一组进行,MAX功能:

SELECT MIN(ID) as ID, Name, MAX(Mark1), MAX(Mark2) 
FROM YourTable 
GROUP BY Name 
+0

感谢编辑@GordonLinoff – sagi

+0

这很好,但有一个Id的例外,我们有多个条目也影响到这一点。 ID名称标记1标记2级 1 ABC 50 75 A + 2 XYZ 0 15 A + 3 XYZ 20 0 B + 4 XYZ 30 0 B + 4 XYZ 40 0 B + 4 XYZ 50 0 B + – Ramesh

+0

的记录列表,我有它的因此它会影响很多地方。 – Ramesh

相关问题