| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 288 人关注过本帖
标题:<求助>SQL统计各班各科不及格的人数
只看楼主 加入收藏
ycvf
Rank: 2
等 级:论坛游民
帖 子:210
专家分:56
注 册:2012-8-25
结帖率:75.61%
收藏
已结贴  问题点数:10 回复次数:3 
<求助>SQL统计各班各科不及格的人数
各科成绩不合格的值分别为 M 或 缺考 或 空值,班级(bj)为4个班(bj1,bj2,bj3,bj4),分别统计每个班的语文,数学,外语不合格中M、缺考、空值的数。
sele bj,count(*) 语文 ,count(*) 数学,count(*) 外语 from g:\bj.dbf wher 语文="M" or 数学="M" or 外语="M" group by bj
搜索更多相关主题的帖子: 统计 count 语文 数学 SQL 
2024-04-24 10:35
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1088
专家分:2677
注 册:2015-12-30
收藏
得分:4 
以下是引用ycvf在2024-4-24 10:35:46的发言:

各科成绩不合格的值分别为 M 或 缺考 或 空值,班级(bj)为4个班(bj1,bj2,bj3,bj4),分别统计每个班的语文,数学,外语不合格中M、缺考、空值的数。
sele bj,count(*) 语文 ,count(*) 数学,count(*) 外语 from g:\bj.dbf wher 语文="M" or 数学="M" or 外语="M" group by bj

这个句子的结果是三个统计值是一样的

可以分别统计,然后组合成一个查询结果
select a.bj,b.语文不及格人数,c.数学不及格人数,d.外语不及格人数
from (select distinct bj FROM g:\bj.dbf) a
left join (select bj,count(*) 语文不及格人数 from g:\bj.dbf where 语文="M" group by bj) b ON b.bj=a.bj
left join (select bj,count(*) 数学不及格人数 from g:\bj.dbf where 数学="M" group by bj) c ON c.bj=a.bj
left join (select bj,count(*) 外语不及格人数 from g:\bj.dbf where 外语="M" group by bj) d ON d.bj=a.bj

2024-04-24 10:48
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:4 
SELECT Bj, ;
SUM(IIF(ALLTRIM(语文)=="M",1,0)) 语文M, SUM(IIF(ALLTRIM(语文)=="缺考",1,0)) 语文缺考,  SUM(IIF(ALLTRIM(语文)=="空值",1,0)) 语文空值, ;
SUM(IIF(ALLTRIM(数学)=="M",1,0)) 数学M, SUM(IIF(ALLTRIM(数学)=="缺考",1,0)) 数学缺考,  SUM(IIF(ALLTRIM(数学)=="空值",1,0)) 数学空值, ;
SUM(IIF(ALLTRIM(外语)=="M",1,0)) 外语M, SUM(IIF(ALLTRIM(外语)=="缺考",1,0)) 外语缺考,  SUM(IIF(ALLTRIM(外语)=="空值",1,0)) 外语空值, ;
FROM g:\bj GROUP BY Bj

如果要三类人员的合计数代码如下
SELECT Bj, ;
SUM(IIF(ALLTRIM(语文)=="M",1,0)) + SUM(IIF(ALLTRIM(语文)=="缺考",1,0)) + SUM(IIF(ALLTRIM(语文)=="空值",1,0)) 语文M缺空, ;
SUM(IIF(ALLTRIM(数学)=="M",1,0)) + SUM(IIF(ALLTRIM(数学)=="缺考",1,0)) + SUM(IIF(ALLTRIM(数学)=="空值",1,0)) 数学M缺空, ;
SUM(IIF(ALLTRIM(外语)=="M",1,0)) + SUM(IIF(ALLTRIM(外语)=="缺考",1,0)) + SUM(IIF(ALLTRIM(外语)=="空值",1,0)) 外语M缺空, ;
FROM g:\bj GROUP BY Bj


[此贴子已经被作者于2024-4-24 11:22编辑过]


坚守VFP最后的阵地
2024-04-24 11:16
yiyanxiyin
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:9
帖 子:215
专家分:1590
注 册:2023-6-29
收藏
得分:4 
sele bj 班级,"语文" 科目, count(*) 不及格人数  from g:\bj.dbf where 语文 in("M","缺考","空置")   group by bj, 语文
union all
sele bj 班级,"数学" 科目, count(*) 不及格人数   from g:\bj.dbf where 数学 in("M","缺考","空置")     group by bj, 数学
union all
sele bj 班级,"外语" 科目, count(*) 不及格人数   from g:\bj.dbf where 外语 in("M","缺考","空置")     group by bj, 外语
2024-04-24 14:23
快速回复:<求助>SQL统计各班各科不及格的人数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027430 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved