WXDao_getTaskStati.sql 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. select CONCAT(cast(sum(todaydonetotal) as char),'/',cast(sum(todaytotal) as char)) today ,
  2. CONCAT(cast(sum(weekdonetotal) as char),'/',cast(sum(weektotal) as char)) week ,
  3. CONCAT(cast(sum(monthdonetotal) as char),'/',cast(sum(monthtotal) as char)) month
  4. from
  5. (select count(*) todaytotal,0 todaydonetotal ,0 weektotal,0 weekdonetotal,0 monthtotal,0 monthdonetotal
  6. from p_projecttask task
  7. left join t_s_user user on task.owner = user.id
  8. where left(planendtime,10) =:today
  9. <#if openid ?exists && openid ?length gt 0>
  10. and openid =:openid
  11. </#if>
  12. <#if projectid ?exists && projectid ?length gt 0>
  13. and task.projectid =:projectid
  14. </#if>
  15. union all
  16. select 0 todaytotal,count(*) todaydonetotal ,0 weektotal,0 weekdonetotal,0 monthtotal,0 monthdonetotal
  17. from p_projecttask task
  18. left join t_s_user user on task.owner = user.id
  19. where left(planendtime,10) =:today
  20. <#if openid ?exists && openid ?length gt 0>
  21. and openid =:openid
  22. </#if>
  23. <#if projectid ?exists && projectid ?length gt 0>
  24. and task.projectid =:projectid
  25. </#if>
  26. and task.taskstatus in ('20','30')
  27. union all
  28. select 0 todaytotal,0 todaydonetotal ,count(*) weektotal,0 weekdonetotal,0 monthtotal,0 monthdonetotal
  29. from p_projecttask task
  30. left join t_s_user user on task.owner = user.id
  31. where left(planendtime,10) >=:weekstart and left(planendtime,10) <:weekend
  32. <#if openid ?exists && openid ?length gt 0>
  33. and openid =:openid
  34. </#if>
  35. <#if projectid ?exists && projectid ?length gt 0>
  36. and task.projectid =:projectid
  37. </#if>
  38. union all
  39. select 0 todaytotal,0 todaydonetotal ,0 weektotal,count(*) weekdonetotal,0 monthtotal,0 monthdonetotal
  40. from p_projecttask task
  41. left join t_s_user user on task.owner = user.id
  42. where left(planendtime,10) >=:weekstart and left(planendtime,10) <:weekend
  43. <#if openid ?exists && openid ?length gt 0>
  44. and openid =:openid
  45. </#if>
  46. <#if projectid ?exists && projectid ?length gt 0>
  47. and task.projectid =:projectid
  48. </#if>
  49. and task.taskstatus in ('20','30')
  50. union all
  51. select 0 todaytotal,0 todaydonetotal ,0 weektotal,0 weekdonetotal,count(*) monthtotal,0 monthdonetotal
  52. from p_projecttask task
  53. left join t_s_user user on task.owner = user.id
  54. where left(planendtime,10) >=:monthstart and left(planendtime,10) <:monthend
  55. <#if openid ?exists && openid ?length gt 0>
  56. and openid =:openid
  57. </#if>
  58. <#if projectid ?exists && projectid ?length gt 0>
  59. and task.projectid =:projectid
  60. </#if>
  61. union all
  62. select 0 todaytotal,0 todaydonetotal ,0 weektotal,0 weekdonetotal,0 monthtotal,count(*) monthdonetotal
  63. from p_projecttask task
  64. left join t_s_user user on task.owner = user.id
  65. where left(planendtime,10) >=:monthstart and left(planendtime,10) <:monthend
  66. <#if openid ?exists && openid ?length gt 0>
  67. and openid =:openid
  68. </#if>
  69. <#if projectid ?exists && projectid ?length gt 0>
  70. and task.projectid =:projectid
  71. </#if>
  72. and task.taskstatus in ('20','30')
  73. ) total