group by 下 没有记录的分组字段的数量显示为0的方法
2011-10-25 16:21
459 查看
select t1.ID,isNull(sum(num),0) num from stu t1 left join
(select ID,count(*) as num from stu t1 inner join dbo.CourseStuView t2 on t1.id=t2.stuid group by ID) t2
on t1.ID=t2.ID
group by t1.ID
执行后的结果
ID Num
1 2
2 1
3 0
4 0
**************************************************************
Couse 课程表
ID Name
1 数学
2 英语
Stu 学生表
ID Name
1 小赵
2 小钱
3 小孙
4 小李
CourseStu 学生选课表
CourseID StuID
1 1
1 2
2 1
CourseStuView 视图
SELECT dbo.CourseStu.CourseID, dbo.CourseStu.StuID, dbo.Course.Name, dbo.Stu.Name AS Expr1
FROM dbo.CourseStu INNER JOIN
dbo.Course ON dbo.CourseStu.CourseID = dbo.Course.ID INNER JOIN
dbo.Stu ON dbo.CourseStu.StuID = dbo.Stu.ID
CourseID StuID Name Expr1
1 1 数学 小赵
2 1 英语 小赵
1 2 数学 小钱
(select ID,count(*) as num from stu t1 inner join dbo.CourseStuView t2 on t1.id=t2.stuid group by ID) t2
on t1.ID=t2.ID
group by t1.ID
执行后的结果
ID Num
1 2
2 1
3 0
4 0
**************************************************************
Couse 课程表
ID Name
1 数学
2 英语
Stu 学生表
ID Name
1 小赵
2 小钱
3 小孙
4 小李
CourseStu 学生选课表
CourseID StuID
1 1
1 2
2 1
CourseStuView 视图
SELECT dbo.CourseStu.CourseID, dbo.CourseStu.StuID, dbo.Course.Name, dbo.Stu.Name AS Expr1
FROM dbo.CourseStu INNER JOIN
dbo.Course ON dbo.CourseStu.CourseID = dbo.Course.ID INNER JOIN
dbo.Stu ON dbo.CourseStu.StuID = dbo.Stu.ID
CourseID StuID Name Expr1
1 1 数学 小赵
2 1 英语 小赵
1 2 数学 小钱
相关文章推荐
- mysql使用GROUP BY分组实现取前N条记录的方法
- sql关于group by之后把每一条记录的详情的某个字段值合并提取的方法
- smartform中,金额和数量字段显示的时候和其它字段不在同一水平面上的解决方法
- 【SQL】按字段分组查询符合条件记录的方法
- mysql使用GROUP BY分组实现取前N条记录的方法
- mysql使用GROUP BY分组实现取前N条记录的方法
- 帝国cms内容页某个字段没有填写就不显示的解决方法
- MYSQL group by 分组后只取最大、最小值对应的记录方法
- mysql5.7分组查询group by,分组查询并且显示每组时间最新的一条记录
- oracle通过表中2个字段分组查询取数量最大的所有记录,有条件的去重
- MySql Group By对多个字段进行分组的实现方法
- MYSQL数据库,查询一周内,合计每天的数量和出现的行数,没有记录的那一天就显示0
- 帝国cms内容页某个字段没有填写就不显示的解决方法
- 显示设备的相关API :EnumDisplayDevices 和EnumDisplaySettings这两个方法没有怎么用过,以后研究以下
- 判断重复,只保留一条记录,但是要显示全部字段
- SQL按字段分组取最大(小)值记录(重复记录)
- 更新ACCESS数据库出现“字段太小而不能接受所要添加的数据的数量。试着插入或粘贴较少的数据。”的解决方法
- MySql按一个字段分组并且取另一个字段最大值的记录
- mysql查询分组后显示某一字段最大值行
- 在gridview里对日期字段设置dataformatstring="{0:yyyy-MM-dd}"没有任何作用的解决方法