请教,精简的Sql代码。
*---------------------------**构造测试数据
*每位评委分别给选手的唱歌、跳舞打分
*计算各选手的唱歌均分、跳舞均分
*---------------------------*
&&测试数据,是很多评委【示例15人】给许多选手【示例10人】进行唱歌、跳舞打分
Create Cursor Test(评委Id I,选手编号 C(7),选手姓名 C(20),唱歌 I,跳舞 I)
For j=1 To 15
For I=1 To 10
Insert Into Test(评委Id,选手编号,选手姓名,唱歌,跳舞) Values (j,'C'+Padl(I,3,'0'),'测试'+Padl(I,3,'0'),Int(Rand()*100),Int(Rand()*100))
Endfor
Endfor
100-100-100-99………………3-2-1 最高100 次最高100 最低分1 次最低分2
100-99-99-99………………3-1-1 最高100 次最高99 最低分1 次最低分1
解释一:
1、用给定的测试数据,去掉每位选手 两个(最高分+次高分) 且 去掉每位选手 两个(最低分+次最低分)一共四条,也就是每位选手去掉这4个分数后,算出 评分类A、评分类B的均分。(这种去掉:比如100,100,99,19,19,……3,3, 1==只能删除100-100-3-1,注意第二个100相当于次最高,)【最高分可能与次高分相等】
2、用给定的测试数据,去掉每位选手 (最高分+次高分) 且 去掉每位选手 (最低分+次最低分),同分都要去掉。算出 评分类A、评分类B的均分。(这种去掉:比如 100-99-99-99………………2-2-1 == 删除100-99 -2-1,这四种分全删除(可能不只四条记录)。【最高分可能与次高分相等】
3、结果列表
选手 姓名 唱歌均分 跳舞均分
C001 XXXX XX.XXXX XX.XXXX
C002 XXXX XX.XXXX XX.XXXX
谢谢。
[此贴子已经被作者于2019-1-11 18:03编辑过]