求高人指点一下这个sql语句该怎么写,急!!!
有一个tb_Questions表中有个字段为type,type的值为:单选题和多选题,还有一个lessonId(课程号)字段表示此题属于哪个课程,现在想选择出单选题和多选...
有一个tb_Questions表中有个字段为type,type的值为:单选题和多选题,还有一个lessonId(课程号)字段表示此题属于哪个课程,现在想选择出单选题和多选题都大于2的课程号。想用group by和having语句可是一个sql语句中只能出现一个group by语句,不知道怎么办,求高人指点,感激不尽!!!
多谢高人,我换了一种写法,查询结果正确了,正确的语句为:
select a.lessonId from tb_Questions a
where a.type='单选题'group by a.lessonId having count(*)>=2
and exists(select * from tb_Questions b where b.type='多选题' group by b.lessonId having count(*)>=2
and a.lessonId = b.lessonId);
再次对高人表示感谢!!!! 展开
多谢高人,我换了一种写法,查询结果正确了,正确的语句为:
select a.lessonId from tb_Questions a
where a.type='单选题'group by a.lessonId having count(*)>=2
and exists(select * from tb_Questions b where b.type='多选题' group by b.lessonId having count(*)>=2
and a.lessonId = b.lessonId);
再次对高人表示感谢!!!! 展开
2个回答
展开全部
你试一下 那个count后面跟的应该是group by后面跟的一样
select a.lessonId from tb_Questions a,tb_Questions b
where a.type='单选题' group by a.lessonId having count(a.lessonId )>=2
不过我感觉 你这个句子表达的就不对
你是不是想找出a b中都满足你提条件的项
不需要在写两个where句子
你这样试一下
select a.lessonId, b.lessonId from tb_Questions a,tb_Questions b
where a.type='单选题' or b.type='多选题' group by a.lessonId,b.lessonId
having count(a.lessonId)>=2 and count(b.lessonId )>=2
select a.lessonId from tb_Questions a,tb_Questions b
where a.type='单选题' group by a.lessonId having count(a.lessonId )>=2
不过我感觉 你这个句子表达的就不对
你是不是想找出a b中都满足你提条件的项
不需要在写两个where句子
你这样试一下
select a.lessonId, b.lessonId from tb_Questions a,tb_Questions b
where a.type='单选题' or b.type='多选题' group by a.lessonId,b.lessonId
having count(a.lessonId)>=2 and count(b.lessonId )>=2
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询