Mysql身份证计算年龄,年龄筛选过滤

该SQL查询用于统计各地区驾校学员的总人数、申请日期在特定时间内的男女比例,以及年龄在25岁以下、25到55岁、55岁以上的人数分布。
摘要由CSDN通过智能技术生成
(substring(now(),1,4)-substring(ts.idcard,7,4))-(substring(ts.idcard,11,4)-date_format(now(),'%m%d')>0) <25  ) age25DownCount
select
        td.district,
        count(1) sumCount,
        (select count(1) from ods_dsznh_t_training_studentinfo ts
        INNER JOIN ods_dsznh_t_training_driverschool tdd on tdd.id = ts.driverschoolid where tdd.district = td.district AND ts.applydate <= #{rrTimeEnd} ) sumCountRr,
        (select count(1) from ods_dsznh_t_training_studentinfo ts
        INNER JOIN ods_dsznh_t_training_driverschool tdd on tdd.id = ts.driverschoolid where tdd.district = td.district AND ts.sex = 1 AND ts.applydate <=  #{query.endTime} ) sumMan,
        (select count(1) from ods_dsznh_t_training_studentinfo ts
        INNER JOIN ods_dsznh_t_training_driverschool tdd on tdd.id = ts.driverschoolid where tdd.district = td.district AND ts.sex = 2 AND ts.applydate <=  #{query.endTime} ) sumWoman,
        (select count(1) from ods_dsznh_t_training_studentinfo ts
        INNER JOIN ods_dsznh_t_training_driverschool tdd on tdd.id = ts.driverschoolid where tdd.district = td.district AND ts.applydate <=  #{query.endTime}
        AND (substring(now(),1,4)-substring(ts.idcard,7,4))-(substring(ts.idcard,11,4)-date_format(now(),'%m%d')>0) <25  ) age25DownCount,
        (select count(1) from ods_dsznh_t_training_studentinfo ts
        INNER JOIN ods_dsznh_t_training_driverschool tdd on tdd.id = ts.driverschoolid where tdd.district = td.district AND ts.applydate <=  #{query.endTime}
        AND (substring(now(),1,4)-substring(ts.idcard,7,4))-(substring(ts.idcard,11,4)-date_format(now(),'%m%d')>0) >25
        AND (substring(now(),1,4)-substring(ts.idcard,7,4))-(substring(ts.idcard,11,4)-date_format(now(),'%m%d')>0) <55 ) age2555DownCount,
        (select count(1) from ods_dsznh_t_training_studentinfo ts
        INNER JOIN ods_dsznh_t_training_driverschool tdd on tdd.id = ts.driverschoolid where tdd.district = td.district AND ts.applydate <=  #{query.endTime}
        AND (substring(now(),1,4)-substring(ts.idcard,7,4))-(substring(ts.idcard,11,4)-date_format(now(),'%m%d')>0)  >55  ) age55UpCount
        from ods_dsznh_t_training_studentinfo ts
        INNER JOIN ods_dsznh_t_training_driverschool td on td.id = ts.driverschoolid
        where ts.applydate <=  #{query.endTime}
        <if test="@com.traffic.admin.business.util.CommonUtil@isNotNull(query.district)">
            AND td.district = #{query.district}
        </if>
        GROUP BY td.district

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值