DbQueryUserMiniDao_queryUserByCertTotal.sql 992 B

123456789101112131415161718192021222324
  1. select
  2. sum(a.total) as total,
  3. sum(a.certCount) as certCount,
  4. sum(a.percent) as percent
  5. from (select count(baseuu.realname) as total,
  6. count(uu2.id)as certCount,
  7. cast(count(uu2.id)/count(baseuu.realname) as decimal(10,2)) as percent,
  8. dp.glcname as departname
  9. from t_bus_user_personnel pers
  10. LEFT JOIN t_s_base_user baseuu on baseuu.id = pers.userid
  11. left join t_s_user_org uorg on uorg.user_id = pers.userid and uorg.ifpluralism = '0'
  12. left join t_s_user uu on pers.userid = uu.id
  13. left join t_s_depart dp on dp.ID = uorg.org_id
  14. left join t_bus_user_certificate uucert on uucert.userid = pers.userid
  15. <#if inDto.certId ?exists && inDto.certId ?length gt 0>
  16. and uucert.certificateid = :inDto.certId
  17. </#if>
  18. left join t_s_user uu2 on uucert.userid = uu2.id
  19. where pers.leave_date is null and baseuu.delete_flag = '0' and dp.glcname is not null
  20. <#if inDto.departname ?exists && inDto.departname ?length gt 0>
  21. and dp.glcname = :inDto.departname
  22. </#if>
  23. GROUP BY dp.glcname) a