AttendanceStatsMinidaoDao_attendanceStatsData.sql 1.5 KB

12345678910111213141516171819202122232425262728293031323334
  1. SELECT a.pjt_id pid,d.description pjName,u.realname pidName,a.yearmonth
  2. <#if (statsDao.attType)?? && statsDao.attType != 0>
  3. ,CONCAT(floor(sum(a.datum_work_duration)/60) ,'小时',floor(sum(a.datum_work_duration) - floor(sum(a.datum_work_duration)/60)*60),'分钟') datumWorkDuration
  4. ,CONCAT(floor(sum(a.attendance_duration)/60) ,'小时',floor(sum(a.attendance_duration) - floor(sum(a.attendance_duration)/60)*60),'分钟') attendanceDuration
  5. ,convert(AVG(a.attendance_rate),decimal(10,2)) attendanceRate
  6. </#if>
  7. <#if (statsDao.attType)?? && statsDao.attType == 0>
  8. ,CONCAT(floor(a.datum_work_duration/60) ,'小时',floor(a.datum_work_duration - floor(a.datum_work_duration/60)*60),'分钟') datumWorkDuration
  9. ,CONCAT(floor(a.attendance_duration/60) ,'小时',floor(a.attendance_duration - floor(a.attendance_duration/60)*60),'分钟') attendanceDuration
  10. ,convert(a.attendance_rate,decimal(10,2)) attendanceRate
  11. </#if>
  12. from t_bus_proj_attendance_statistics a
  13. LEFT JOIN t_s_depart d
  14. ON a.pjt_id = d.ID
  15. LEFT JOIN t_s_base_user u
  16. ON a.pm_id = u.ID
  17. where 1=1
  18. <#if (statsDao.attType)?? && statsDao.attType == 2>
  19. and a.yearmonth like CONCAT('%', :statsDao.attYear ,'%')
  20. </#if>
  21. <#if (statsDao.attType)?? && statsDao.attType != 2>
  22. <#if ( statsDao.yearMonthList )?? && statsDao.yearMonthList ?size gt 0>
  23. and a.yearmonth in(
  24. <#list statsDao.yearMonthList as item>
  25. '${item}'
  26. <#if item_has_next>,</#if>
  27. </#list>
  28. )
  29. </#if>
  30. </#if>
  31. <#if (statsDao.attType)?? && statsDao.attType != 0>
  32. GROUP BY a.pjt_id
  33. </#if>
  34. order by attendanceRate asc