我觉得比较复杂的一个查询

向良玉 2009-12-01 07:54:55
学生选课系统中,有些课没选,如果我要查询课程和相应课程的选课的人数,有的是0,怎么显示呢???
指教!!!
...全文
111 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawugui 2009-12-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xiangliangyu2008 的回复:]
结构就是下面这样:
course(cno,cname)
student(sno,sname,sex,sage)
sc(sno,cno,grade)
[/Quote]
select m.*,
isnull((select count(1) from sc n where cno = m.cno) , 0 ) 选课人数
from course m
fhjzgsy 2009-12-02
  • 打赏
  • 举报
回复
顶个,似乎都正确,给粉吧
黎雨梦荷 2009-12-01
  • 打赏
  • 举报
回复
这样写应该可以:
select cno as 课程号,count(sno)选课人数
from sc
group by cno


--小F-- 2009-12-01
  • 打赏
  • 举报
回复
---修改
select
a.cname,isnull(count(b.sno),0) as 选课的人数
from
sc c
left join
student b
on
c.sno=b.sno
left join
course a
on
a.cno,=c.cno
--小F-- 2009-12-01
  • 打赏
  • 举报
回复
select 
a.cname,isnull(count(sno),0) as 选课的人数
from
sc c
left join
student b
on
c.sno=b.sno
left join
course a
on
a.cno,=c.cno,
icelovey 2009-12-01
  • 打赏
  • 举报
回复

数据呢??
pt1314917 2009-12-01
  • 打赏
  • 举报
回复

--这样?
select cname,人数=isnull(cnt,0)
from course a left join
(select cno,cnt=count(*) from sc group by cno) b on a.cno=b.cno

向良玉 2009-12-01
  • 打赏
  • 举报
回复
结构就是下面这样:
course(cno,cname)
student(sno,sname,sex,sage)
sc(sno,cno,grade)

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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