请教用VB怎么实现筛选年龄区间

[复制链接]
查看11 | 回复6 | 2021-1-27 06:05:16 | 显示全部楼层 |阅读模式
请教一下大家,我想实现利用数据库的数据,统计一下各个年龄段的购车人数,其计算结果在datagrid上显示出来。
这个的语句应该怎么写呢
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:05:16 | 显示全部楼层
groupby分组
回复

使用道具 举报

千问 | 2021-1-27 06:05:16 | 显示全部楼层
这是什么意思?
回复

使用道具 举报

千问 | 2021-1-27 06:05:16 | 显示全部楼层


PrivateSubCommand1_Click()
DimNLD(1To4)AsString,RS(1To4)AsInteger'定义了二个数组变量
NLD(1)="20到29岁"
NLD(2)="30到39岁"
NLD(3)="40到49岁"
NLD(4)="50到59岁"
Adodc1.RecordSource="SelectID,年龄From购车记录"
Adodc1.Refresh
DoWhileNotAdodc1.Recordset.EOF
IfAdodc1.Recordset.Fields("年龄")>=20AndAdodc1.Recordset.Fields("年龄")=30AndAdodc1.Recordset.Fields("年龄")=40AndAdodc1.Recordset.Fields("年龄")=50AndAdodc1.Recordset.Fields("年龄")
数据库连接语句略,购车记录的数据表是随意创建的,你可以根据你的数据表就可以了。
回复

使用道具 举报

千问 | 2021-1-27 06:05:16 | 显示全部楼层
不用3楼那么麻烦,用Partition函数就可以。
假定你已经知道如何用Connection对象连接数据库,且使用了cn对象变量:
rs.Open"SELECTDISTINCTROWPartition([年龄],0,60,10)AS[年龄段],Count(购车记录.ID)As[人数]From购车记录GROUPBYPartition([年龄],0,60,10)",cn
SetDataGrid1.DataSource=rs
回复

使用道具 举报

千问 | 2021-1-27 06:05:16 | 显示全部楼层
groupby直接解决,分类汇总么.
回复

使用道具 举报

千问 | 2021-1-27 06:05:16 | 显示全部楼层
姓名年龄
==============
张三23
李四51
王五32



selectconvert(varchar(5),段)+'0-'+convert(varchar(5),段)+'9'as年龄段,人数from
(
select年龄/10as年龄段,count(distinct姓名)as人数from购车表groupby年龄/10
)
试试看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行