奖金排名.sql 905 B

12345678910111213141516171819202122232425262728293031323334353637
  1. SET @PERIOD_MIN = 155;
  2. SET @PERIOD_MAX = 157;
  3. SELECT
  4. B1.`会员编号`,
  5. B1.`会员姓名`,
  6. E.LEVEL_NAME AS 荣衔等级,
  7. B1.`总奖金`
  8. FROM
  9. (SELECT
  10. A1.`会员编号`,
  11. A1.`会员姓名`,
  12. SUM(A1.`总奖金`) AS 总奖金
  13. FROM
  14. (SELECT
  15. B.PERIOD_NUM AS 期数,
  16. U.USER_NAME AS 会员编号,
  17. U.REAL_NAME AS 会员姓名,
  18. B.BONUS_TOTAL AS 总奖金
  19. FROM
  20. ar_calc_bonus B
  21. LEFT JOIN ar_user U ON U.ID = B.USER_ID
  22. WHERE B.PERIOD_NUM >= @PERIOD_MIN AND B.PERIOD_NUM <= @PERIOD_MAX AND B.BONUS_TOTAL >= 1
  23. UNION ALL
  24. SELECT
  25. J.`期数`,
  26. J.`会员编号`,
  27. J.`会员姓名`,
  28. J.`总奖金`
  29. FROM
  30. `奖金数据表` J
  31. WHERE J.`期数` >= @PERIOD_MIN AND J.`期数` <= @PERIOD_MAX AND J.`总奖金` >= 1)A1
  32. GROUP BY A1.`会员编号`,A1.`会员姓名`
  33. ORDER BY SUM(A1.`总奖金`) DESC
  34. LIMIT 0,15)B1
  35. LEFT JOIN ar_user U ON U.USER_NAME = B1.`会员编号`
  36. LEFT JOIN ar_employ_level E ON E.ID = U.EMP_LV