XcglRptDao_taskStatsOrgUserData.sql 1.1 KB

1234567891011121314151617181920212223242526
  1. select
  2. bu.realname AS name,
  3. bu.id AS id,
  4. count(*) as taskTotal,
  5. SUM(CASE WHEN task.taskstatus ='20' or task.taskstatus ='10' THEN 1 ELSE 0 END) AS finishTotal,
  6. SUM(CASE WHEN task.taskstatus ='0' or task.taskstatus ='1' THEN 1 ELSE 0 END) AS noFinishTaskTotal,
  7. SUM(CASE WHEN task.taskstatus ='0' or task.taskstatus ='1' THEN 1 ELSE 0 END)/count(*) *100 AS noFinishProportion,
  8. SUM(CASE WHEN task.taskstatus in ('user_add','sameleveltransfer','user_leave','green') THEN 1 ELSE 0 END) AS activityTotal
  9. from p_projecttask task
  10. left join t_s_base_user bu on bu.id = task.owner
  11. where task.projectid = :entityParam.pid
  12. <#if (entityParam.attType)?? && entityParam.attType == 2>
  13. and left(task.planendtime,4) = :entityParam.attYear
  14. </#if>
  15. <#if (entityParam.attType)?? && entityParam.attType != 2>
  16. <#if ( entityParam.yearMonthList )?? && entityParam.yearMonthList ?size gt 0>
  17. and left(task.planendtime,7) in(
  18. <#list entityParam.yearMonthList as item>
  19. '${item}'
  20. <#if item_has_next>,</#if>
  21. </#list>
  22. )
  23. </#if>
  24. </#if>
  25. group by task.owner
  26. order by tasktotal desc