注册 登录
编程论坛 VFP论坛

请教一个统计的命令

love0428 发布于 2023-09-21 17:22, 601 次点击
学生表(学院,学号,姓名,性别,是否党员)
想用一个命令统计如下信息:
学院,男生人数,女生人数,男性党员人数,女性党员人数
请问如何实现?
9 回复
#2
kangss2023-09-21 17:41
方法有很多种,用最简单直观的命令:
sum for 性别 = "男" to 男生人数

SUM 命令
请参阅 示例
 全部折叠 全部展开
对当前选定表中的所有或指定的数值型字段求和。
 
SUM [eExpressionList]   [Scope] [FOR lExpression1] [WHILE lExpression2]
   [TO MemVarNameList | TO ARRAY ArrayName]   [NOOPTIMIZE]
#3
金戈铁马22023-09-21 22:22
学习
#4
sdta2023-09-21 23:09
create cursor tt (学院 c(10), 性别 c(2))
insert into tt values ('A', '男')
insert into tt values ('B', '女')
insert into tt values ('B', '女')
insert into tt values ('A', '女')
insert into tt values ('A', '男')
SELECT 学院, SUM(IIF(性别 == "男", 1, 0)) 男,  SUM(IIF(性别 == "女", 1, 0)) 女 FROM tt GROUP BY 学院
#5
laowan0012023-09-22 08:08
把楼上的语句扩展一下就都出来了
select 学院,sum(iif(性别='男',1,0)) 男,sum(iif(性别='女',1,0)) 女,
sum(iif(性别='男' AND 是否党员='是',1,0)) 男党员,sum(iif(性别='女' AND 是否党员='是',1,0)) 女党员
from 表 gorup by 学院
#6
love04282023-09-22 09:54
非常感谢!!!
#7
z126892023-09-22 10:24
谢谢两位版主,SQL原来还可以这样用
#8
chychychy2023-09-22 15:34
Create Cursor tt (学院 c(10), 学号 c(8),性别 c(2),是否党员  c(2))
Insert Into tt Values ('A','001', '男','是')
Insert Into tt Values ('B','001', '男','否')
Insert Into tt Values ('B','002', '女','是')
Insert Into tt Values ('A','002', '女','是')
Insert Into tt Values ('A','003', '男','否')
Select 学院,Sum(Iif(性别='男',1,0)) 男,Sum(Iif(性别='女',1,0)) 女,;
    sum(Iif(性别='男' And 是否党员='是',1,0)) 男党员,Sum(Iif(性别='女' And 是否党员='是',1,0)) 女党员 ;
    FROM tt  Group By 学院&&&&5楼的group 误写成gorup了


只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2023-9-22 15:37编辑过]

#9
schtg2023-09-22 17:59
凑热闹,再来一下
只有本站会员才能查看附件,请 登录

程序代码:
create cursor tt (学院 c(10), 学号 c(8),性别 c(2),是否党员  c(2))
insert into tt values ('a','001', '','')
insert into tt values ('b','001', '','')
insert into tt values ('b','002', '','')
insert into tt values ('a','002', '','')
insert into tt values ('a','003', '','')
select 学院,sum(iif(性别='',1,0)) as 男,sum(iif(性别='',1,0)) as 女,;
    sum(iif(性别='' and 是否党员='',1,0)) as 男党员,sum(iif(性别='' and 是否党员='',1,0)) as 女党员, ;
    count(性别) as 总人数 ;
    from tt  group by 学院


[此贴子已经被作者于2023-9-22 18:01编辑过]

#10
laowan0012023-09-23 08:36
以下是引用chychychy在2023-9-22 15:34:26的发言:

Create Cursor tt (学院 c(10), 学号 c(8),性别 c(2),是否党员  c(2))
Insert Into tt Values ('A','001', '男','是')
Insert Into tt Values ('B','001', '男','否')
Insert Into tt Values ('B','002', '女','是')
Insert Into tt Values ('A','002', '女','是')
Insert Into tt Values ('A','003', '男','否')
Select 学院,Sum(Iif(性别='男',1,0)) 男,Sum(Iif(性别='女',1,0)) 女,;
    sum(Iif(性别='男' And 是否党员='是',1,0)) 男党员,Sum(Iif(性别='女' And 是否党员='是',1,0)) 女党员 ;
    FROM tt  Group By 学院&&&&5楼的group 误写成gorup了

1