SpecimenOutboundMapper.xml 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="cn.iocoder.yudao.module.museums.dal.mysql.specimenoutbound.SpecimenOutboundMapper">
  4. <!--
  5. 一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
  6. 无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
  7. 代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
  8. 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
  9. -->
  10. <select id="selectMonthlyOutboundStatistics" resultType="map">
  11. SELECT
  12. MONTH(outgoing_time) AS month,
  13. COUNT(DISTINCT TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(info_id, ',', numbers.n), ',', -1))) AS number
  14. FROM
  15. museums_specimen_outbound
  16. JOIN
  17. (SELECT 1 AS n UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION
  18. SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 10) AS numbers
  19. ON
  20. CHAR_LENGTH(info_id) - CHAR_LENGTH(REPLACE(info_id, ',', '')) >= numbers.n - 1
  21. WHERE
  22. (status = 3 OR status = 4)
  23. AND YEAR(outgoing_time) = #{year}
  24. AND deleted = 0
  25. GROUP BY
  26. MONTH(outgoing_time)
  27. ORDER BY
  28. month
  29. </select>
  30. <select id="getMonthlyReturnStatistics" resultType="map">
  31. SELECT
  32. MONTH(return_date) AS month,
  33. COUNT(DISTINCT TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(info_id, ',', numbers.n), ',', -1))) AS number
  34. FROM
  35. museums_specimen_outbound
  36. JOIN
  37. (SELECT 1 AS n UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION
  38. SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9 UNION SELECT 10) AS numbers
  39. ON
  40. CHAR_LENGTH(info_id) - CHAR_LENGTH(REPLACE(info_id, ',', '')) >= numbers.n - 1
  41. WHERE
  42. (status = 4)
  43. AND YEAR(return_date) = #{year}
  44. AND deleted = 0
  45. GROUP BY
  46. MONTH(return_date)
  47. ORDER BY
  48. month
  49. </select>
  50. </mapper>