人员目标统计-出货.sql 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. with sa_salestarget as
  2. (
  3. select 0+CAST(sum(amount) AS CHAR) amount,point,sa_saleareaid,type from(SELECT (t5.qty*t1.price) amount, MONTH (t6.checkdate) point,ifnull(t4.sa_saleareaid,0) sa_saleareaid,'月' type
  4. FROM sa_orderitems t1
  5. LEFT JOIN sa_order t2 ON t1.sa_orderid=t2.sa_orderid AND t1.siteid=t2.siteid
  6. left join sys_enterprise_tradefield t3 on t2.sys_enterpriseid=t3.sys_enterpriseid and t2.siteid=t3.siteid
  7. left join sa_salearea t4 on t4.sa_saleareaid=t3.sa_saleareaid and t4.siteid=t3.siteid
  8. inner join st_stockbill_items t5 ON t5.sa_orderitemsid = t1.sa_orderitemsid AND t5.siteid = t1.siteid
  9. inner join st_stockbill t6 ON t6.st_stockbillid = t5.st_stockbillid AND t6.siteid = t5.siteid
  10. WHERE YEAR (t6.checkdate)=$year$ AND t1.siteid=$siteid$ and t6.rb=1) a
  11. GROUP BY point,sa_saleareaid,type
  12. )
  13. , hrtarget as (
  14. select t1.sa_saleareaid,
  15. t1.areaname,
  16. t1.hrid,
  17. t1.name,
  18. t1.position,
  19. ROUND((ifnull(m1.amount,0)+ ifnull(m2.amount,0)+ifnull(m3.amount,0)+ ifnull(m4.amount,0)+ ifnull(m5.amount,0)+ ifnull(m6.amount,0)+ ifnull(m7.amount,0)+ ifnull(m8.amount,0)+ ifnull(m9.amount,0) + ifnull(m10.amount,0)+ ifnull(m11.amount,0)+ ifnull(m12.amount,0))/10000,$num$) as y1a,
  20. ROUND((ifnull(m1.amount,0)+ ifnull(m2.amount,0)+ifnull(m3.amount,0))/10000,$num$) as s1a,
  21. ROUND((ifnull(m4.amount,0)+ ifnull(m5.amount,0)+ifnull(m6.amount,0))/10000,$num$) as s2a,
  22. ROUND((ifnull(m7.amount,0)+ ifnull(m8.amount,0)+ifnull(m9.amount,0))/10000,$num$) as s3a,
  23. ROUND((ifnull(m10.amount,0)+ ifnull(m11.amount,0)+ifnull(m12.amount,0))/10000,$num$) as s4a,
  24. ROUND(ifnull(m1.amount,0)/10000,$num$) as m1a,
  25. ROUND(ifnull(m2.amount,0)/10000,$num$) as m2a,
  26. ROUND(ifnull(m3.amount,0)/10000,$num$) as m3a,
  27. ROUND(ifnull(m4.amount,0)/10000,$num$)as m4a,
  28. ROUND(ifnull(m5.amount,0)/10000,$num$) as m5a,
  29. ROUND(ifnull(m6.amount,0)/10000,$num$) as m6a,
  30. ROUND(ifnull(m7.amount,0)/10000,$num$) as m7a,
  31. ROUND(ifnull(m8.amount,0)/10000,$num$) as m8a,
  32. ROUND(ifnull(m9.amount,0)/10000,$num$) as m9a,
  33. ROUND(ifnull(m10.amount,0)/10000,$num$) as m10a,
  34. ROUND(ifnull(m11.amount,0)/10000,$num$) as m11a,
  35. ROUND(ifnull(m12.amount,0)/10000,$num$) as m12a
  36. from sa_salestargethr t1
  37. left join sa_salestarget m1 on t1.sa_saleareaid = m1.sa_saleareaid and m1.type = '月' and m1.point = 1
  38. left join sa_salestarget m2 on t1.sa_saleareaid = m2.sa_saleareaid and m2.type = '月' and m2.point = 2
  39. left join sa_salestarget m3 on t1.sa_saleareaid = m3.sa_saleareaid and m3.type = '月' and m3.point = 3
  40. left join sa_salestarget m4 on t1.sa_saleareaid = m4.sa_saleareaid and m4.type = '月' and m4.point = 4
  41. left join sa_salestarget m5 on t1.sa_saleareaid = m5.sa_saleareaid and m5.type = '月' and m5.point = 5
  42. left join sa_salestarget m6 on t1.sa_saleareaid = m6.sa_saleareaid and m6.type = '月' and m6.point = 6
  43. left join sa_salestarget m7 on t1.sa_saleareaid = m7.sa_saleareaid and m7.type = '月' and m7.point = 7
  44. left join sa_salestarget m8 on t1.sa_saleareaid = m8.sa_saleareaid and m8.type = '月' and m8.point = 8
  45. left join sa_salestarget m9 on t1.sa_saleareaid = m9.sa_saleareaid and m9.type = '月' and m9.point = 9
  46. left join sa_salestarget m10 on t1.sa_saleareaid = m10.sa_saleareaid and m10.type = '月' and m10.point = 10
  47. left join sa_salestarget m11 on t1.sa_saleareaid = m11.sa_saleareaid and m11.type = '月' and m11.point = 11
  48. left join sa_salestarget m12 on t1.sa_saleareaid = m12.sa_saleareaid and m12.type = '月' and m12.point = 12
  49. where t1.sa_salestargetbillid = $sa_salestargetbillid$
  50. )
  51. select *
  52. from (
  53. select '区域' as type,
  54. t1.areaname,
  55. t1.sa_saleareaid,
  56. t2.parentid,
  57. t2.areafullname,
  58. 1 level,
  59. ROUND(y1a,$num$) y1a,
  60. ROUND(s1a,$num$) s1a,
  61. ROUND(s2a,$num$) s2a,
  62. ROUND(s3a,$num$) s3a,
  63. ROUND(s4a,$num$) s4a,
  64. ROUND(m1a,$num$) m1a,
  65. ROUND(m2a,$num$) m2a,
  66. ROUND(m3a,$num$) m3a,
  67. ROUND(m4a,$num$) m4a,
  68. ROUND(m5a,$num$) m5a,
  69. ROUND(m6a,$num$) m6a,
  70. ROUND(m7a,$num$) m7a,
  71. ROUND(m8a,$num$) m8a,
  72. ROUND(m9a,$num$) m9a,
  73. ROUND(m10a,$num$) m10a,
  74. ROUND(m11a,$num$) m11a,
  75. ROUND(m12a,$num$) m12a
  76. from hrtarget t1
  77. INNER JOIN sa_salearea t2 ON t2.sa_saleareaid = t1.sa_saleareaid
  78. union all
  79. select '区域汇总' as type,
  80. t6.areaname,
  81. t6.sa_saleareaid,
  82. t6.parentid,
  83. t6.areafullname,
  84. 0 level,
  85. ROUND(sum(y1a),$num$) y1a,
  86. ROUND(sum(s1a),$num$) s1a,
  87. ROUND(sum(s2a),$num$) s2a,
  88. ROUND(sum(s3a),$num$) s3a,
  89. ROUND(sum(s4a),$num$) s4a,
  90. ROUND(sum(m1a),$num$) m1a,
  91. ROUND(sum(m2a),$num$) m2a,
  92. ROUND(sum(m3a),$num$) m3a,
  93. ROUND(sum(m4a),$num$) m4a,
  94. ROUND(sum(m5a),$num$) m5a,
  95. ROUND(sum(m6a),$num$) m6a,
  96. ROUND(sum(m7a),$num$) m7a,
  97. ROUND(sum(m8a),$num$) m8a,
  98. ROUND(sum(m9a),$num$) m9a,
  99. ROUND(sum(m10a),$num$) m10a,
  100. ROUND(sum(m11a),$num$) m11a,
  101. ROUND(sum(m12a),$num$) m12a
  102. from hrtarget t1
  103. left join sa_salearea t5 on t1.sa_saleareaid = t5.sa_saleareaid
  104. left join sa_salearea t6 on t5.parentid = t6.sa_saleareaid and t5.siteid = t6.siteid
  105. group by t6.sa_saleareaid, t6.areafullname, t6.areaname) t
  106. where $where$
  107. order by case when t.type = '区域汇总' then 0 else 1 end