??这条sql语句为啥不对??

woliuliudada 2003-05-19 10:30:03
select PaperID ,StudentID
from StudentsArrange
where PaperID in(select PaperID from……) //子查询
group by StudentID
having count(PaperID)>1

这条语句出错说StudentsArrange.PaperID既不在group by中也不在聚合函数中
为啥呀?书上就有类似的语句呀
我的StudentArrange表中只有PaperID和StudentID
这是一个试卷安排表
该select语句是查出
一张试卷中一个考生出现好几次的PaperID和StudentID
是不是因为StudentArrange表设计的不对呀?
...全文
17 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
CMIC 2003-05-19
  • 打赏
  • 举报
回复
语句错误的问题,同意 chsl918(二雷) 。
我想你的意思是如果PaperID和StudentID都相同,只显示一次的PaperID和StudentID吧?
那么这么写:


select DISTINCT PaperID ,StudentID
from StudentsArrange
chsl918 2003-05-19
  • 打赏
  • 举报
回复
group by 语句的问题,
此语句必须要有sum或者count语句与之对应。
如果没有sum,则不能group by
道理是这样:聚组就是为了算和的。你将StudentID聚组了。PaperID 怎么显示啊!因为group by后一条StudentID只能显示一条,所以就是为了算和用的。
你在看看group by相关资料吧
Knight94 2003-05-19
  • 打赏
  • 举报
回复
应该如下
select PaperID ,StudentID,count(PaperID)
from StudentsArrange
where PaperID in (select PaperID from……) //子查询
group by StudentID
having count(PaperID)>1
maotin 2003-05-19
  • 打赏
  • 举报
回复
select PaperID ,StudentID
from StudentsArrange
where PaperID in(select PaperID from……) //子查询
group by PaperID,StudentID
having count(PaperID)>1

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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