求个 SQL 多表、分组汇总合计的 语句

统计源表和需要统计的结果集请详见附图说明:1、为了大家一目了然看清楚我的两张表的结构,我特意把所有字段名称改为了中文2、按专业级别、专业名称分组统计3、统计结果中的“计划... 统计源表 和需要统计的 结果集 请详见附图

说明:
1、为了大家一目了然看清楚我的两张表的结构,我特意把所有字段名称改为了中文
2、按专业级别、专业名称分组统计
3、统计结果中的“计划人数”,就是专业表“TB_Profession”里的【计划人数】字段,照搬过来就行(也就是这一步我没做出来)
4、统计结果中的“报名人数”,是所有报名的人数,需要解释一下:学生报名以后,让【学生编号】字段的内容默认为“X”,而通过了审核的,就给一个编号,如“X20120001”,也就是说,【学生编号】只有“X”的,只是预约成功的学生,并没有审核,但无论学生表“TB_Student”中【学生编号】字段为什么内容(长度为 1 或 9),都要算在“报名人数”里。“审核人数”,就是【学生编号】形于“X20120001”的人数,只有“X”的不算。
5、由专业表“TB_Profession”可以看出来,同一个专业名称,是可以有不同级别的,所以,一定要按“专业级别”和“专业名称”分组的原因就在此。
6、对于第 5 条 说明,补充一下,既然按分组了,就一定要合计,合计就是后面所有列相对应计算出总人数,但最重要的是:每个“专业级别”合计一次(这个我也更没做出来)

我只要一个 SQL 语句就行,不需要其他的程序;无需考虑表格的表头、表格样式,这些我自己来设计和绘制,我要的是,能统计出 附图中的结果 的 SQL 语句。

请各位前辈指导一下,如果统计结果正确,高分酬谢!
展开
 我来答
厍曼冬6o
2012-06-04 · TA获得超过1569个赞
知道小有建树答主
回答量:1336
采纳率:0%
帮助的人:1203万
展开全部
select a.专业级别,a.专业名称,b.计划人数,sum(case when 学生编号='X' then 1 else 0 end) 报名人数,sum(case when 学生编号<>'X' then 1 else 0 end) 审核人数,
sum(case when 住址='长沙' then 1 else 0 end) 长沙,
sum(case when 住址='望城' then 1 else 0 end) 望城,
sum(case when 住址='宁乡' then 1 else 0 end) 宁乡,
sum(case when 住址='浏阳' then 1 else 0 end) 浏阳,
sum(case when 性别='男' then 1 else 0 end) 男,
sum(case when 性别='女' then 1 else 0 end) 女,
from
TB_Student a,TB_Profession b
where a.专业级别=b.专业级别 and a.专业名称=b.专业名称
group by a.专业级别,a.专业名称,b.计划人数
更多追问追答
追问
您好,您的 SQL 语句可以查询成功,而且是正确的结果,但是怎么添加每个类别下面那个“合计”行
追答
这个最好用程序代码分步处理:
按专业级别对以上结果分组,再插入以上结果中
dpxsdw
2012-06-04 · TA获得超过132个赞
知道小有建树答主
回答量:287
采纳率:0%
帮助的人:83.9万
展开全部
我只写一项的汇总啊,别的么照着一样写就好了。就写计划人数
select case when 专业级别 is null then N'总计' else 专业级别 end ,case when 专业名称 is null and 专业级别 is not null then N'合计' else 专业名称 end ,sum(计划人数)
from TB_professional
group BY 专业级别,专业名称
with rollup
追问
您好,您的代码,有统计,符合客户的要求,不过我加了代码以后,出现两个问题:
1、计划人数,不给合计,显示NULL
2、每个专业都会有重复的结果出来
您看一下我写的SQL的结果附图
追答
有null,可能因为你的计划人数有的部门是空的!那个sum里面加 ISnull的语句。sum( ISnull(计划人数,0))
然后将pro_plan从groupby 的后面拿掉,不需要按着那个分组啊!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tjrmgs
2012-07-04 · TA获得超过5765个赞
知道大有可为答主
回答量:2161
采纳率:94%
帮助的人:1037万
展开全部

一条SQL语句实现既有明细又有分组合计本人可以做到,效果见附图。

如要了解详情可以HI我。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
IM_FB
2014-09-27 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:115
采纳率:100%
帮助的人:67.2万
展开全部
貌似已解决了我就不搀和了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式