sql语句修改

fcxxfcxx 2017-07-31 10:08:22
求:下面的语句是可以运行的,单结果不对。现在我要不同学校不同班级前35人的(高分到低分,不足的按实际人数计算)的相应学科的平均分,要如何修改???语句:
string mmk = "select 区县,学校,年级,班级,count(*) as 实有人数,SUM(CASE WHEN " + DropDownList1.SelectedValue + ">=0 THEN 1 ELSE 0 END) as 实考人数,sum(" + DropDownList1.SelectedValue + ") as " + DropDownList1.SelectedValue + "总分,CAST(sum(" + DropDownList1.SelectedValue + ")/SUM(CASE WHEN " + DropDownList1.SelectedValue + ">=0 THEN 1 ELSE 0 END) AS DECIMAL(10,2)) as " + DropDownList1.SelectedValue + "平均分,max(" + DropDownList1.SelectedValue + ") as " + DropDownList1.SelectedValue + "最高分,min(distinct " + DropDownList1.SelectedValue + ") as " + DropDownList1.SelectedValue + "最低分,(max(" + DropDownList1.SelectedValue + "))-(min(distinct " + DropDownList1.SelectedValue + ")) as " + DropDownList1.SelectedValue + "全距 from (Select top 35 percent " + DropDownList1.SelectedValue + ",区县,学校,年级,班级,考试名称 from " + DropDownList2.SelectedValue + "成绩 Group by " + DropDownList1.SelectedValue + ",区县,学校,年级,班级,考试名称 Order by " + DropDownList1.SelectedValue + " ASC) AS T where 考试名称='" + Label4.Text + "' group by 区县,学校,年级,班级 order by 年级," + DropDownList1.SelectedValue + "平均分 DESC";

结果:

人数计算不正确,请问如何修改?谢谢!
...全文
270 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
正怒月神 版主 2017-08-01
  • 打赏
  • 举报
回复
提问时简化一下,这么一大段没人高兴帮你看。 3楼已经说了,使用分组 OVER(PARTITION BY) , 这个函数是很有用的。
CPU不够了 2017-08-01
  • 打赏
  • 举报
回复
你都不正确?还是就人数不正确?还是就实有人数不正确?
xdashewan 2017-08-01
  • 打赏
  • 举报
回复
引用 5 楼 fcxxfcxx 的回复:
大家能不能给一个修改参考,谢谢!
不要等别人帮你写出来,自己尝试写,写不对可以继续问
Kevin_Zhuang 2017-08-01
  • 打赏
  • 举报
回复
DropDownList1.SelectedValue 这个是什么鬼,还有sql语句就sql 语句别把别人看不到的信息放进去,想帮你看都没办法
fcxxfcxx 2017-07-31
  • 打赏
  • 举报
回复
能不能给一个修改参考,谢谢!
xdashewan 2017-07-31
  • 打赏
  • 举报
回复
使用OVER(PARTITION BY),用法参考http://www.cnblogs.com/lanzi/archive/2010/10/26/1861338.html 不过使用前要注意sqlserver2005或oracle8.1.6以上版本
fcxxfcxx 2017-07-31
  • 打赏
  • 举报
回复
大家能不能给一个修改参考,谢谢!
fcxxfcxx 2017-07-31
  • 打赏
  • 举报
回复
请问如何获取测试数据?
exception92 2017-07-31
  • 打赏
  • 举报
回复
没有测试数据,有些人都懒的看。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧