作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
好的,那么我想解决的问题是:
我想表达以下业务规则:
显示需要额外审查的组(针对特定教程 (tutorialID) 和周 (week))。
所以基本上我需要确定一个组中的成员数量,然后我需要汇总该周和该组的所有 scrum 评论,看看这个数量是否等于该组中的成员数量。如果是,这意味着该周的所有成员都已经过审核,因此不需要显示。
假设:一个成员(member)每周只能被评论一次。
我尝试了以下 SQL,但是我收到以下错误 Subquery returns more than 1 row
SELECT groupName, g.groupId
FROM `student` s, `group` g
WHERE s.GroupId = g.GroupId
AND s.GroupId IS NOT NULL
AND s.tutorialId = 2
GROUP by s.GroupId
AND s.GroupID = (
SELECT GroupId
FROM student
GROUP BY GroupId
HAVING count(*)> (
SELECT count(*)
FROM scrumreview r, student s
WHERE r.reviewee = s.studentID
GROUP BY GroupId
AND r.week = 5
)
)
学生
scrum 回顾
组
最佳答案
您的内部查询(从第 8 行开始)返回多个 groupid
。相等运算符 =
进行一对一比较,但您想要的是一对多比较,您可以使用 IN
进行比较。
因此,要解决此问题,请在第 7 行更改代码...
AND s.GroupID = (
...为此:
AND s.GroupID IN (
关于mysql - SQL - HAVING 子句中的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10383246/
我是一名优秀的程序员,十分优秀!