|
@@ -87,14 +87,12 @@
|
|
|
<result property="reserveNum" column="reserve_num_"/>
|
|
|
</resultMap>
|
|
|
<select id="queryChildrenStatistics" resultMap="ChildrenStatisticsDtoMap">
|
|
|
- SELECT o.name_ organ_name_,co.name_ cooperation_organ_name_,mg.name_ music_group_name_,COUNT(sr.user_id_)
|
|
|
- normal_num_,
|
|
|
- COUNT(CASE WHEN cdr.is_reserve_ = 1 THEN 1 ELSE NULL END) 'reserve_num_',
|
|
|
- COUNT(CASE WHEN cdr.is_reserve_ = 0 THEN 1 ELSE NULL END) 'no_reserve_num_'
|
|
|
+ SELECT o.name_ organ_name_,co.name_ cooperation_organ_name_,mg.name_ music_group_name_,COUNT(sr.user_id_) normal_num_,
|
|
|
+ COUNT(DISTINCT CASE WHEN cdr.is_reserve_ = 1 THEN 1 ELSE NULL END) 'reserve_num_',
|
|
|
+ COUNT(DISTINCT CASE WHEN cdr.is_reserve_ = 0 THEN 1 ELSE NULL END) 'no_reserve_num_'
|
|
|
FROM children_day_reserve cdr
|
|
|
LEFT JOIN music_group mg ON mg.id_ = cdr.music_group_id_
|
|
|
- LEFT JOIN student_registration sr ON sr.music_group_id_ = cdr.music_group_id_ AND sr.music_group_status_ =
|
|
|
- 'NORMAL'
|
|
|
+ LEFT JOIN student_registration sr ON sr.music_group_id_ = cdr.music_group_id_ AND sr.music_group_status_ = 'NORMAL' AND cdr.user_id_ = sr.user_id_
|
|
|
LEFT JOIN cooperation_organ co ON co.id_ = cdr.cooperation_organ_id_
|
|
|
LEFT JOIN organization o ON o.id_ = cdr.organ_id_
|
|
|
<include refid="queryChildrenStatisticsSql"/>
|
|
@@ -102,11 +100,11 @@
|
|
|
ORDER BY cdr.id_ DESC
|
|
|
<include refid="global.limit"/>
|
|
|
</select>
|
|
|
- <select id="countChildrenStatistics" resultType="java.lang.Integer">
|
|
|
- SELECT COUNT(cdr.id_)
|
|
|
+ <select id="countChildrenStatistics" resultType="int">
|
|
|
+ SELECT COUNT(c.id_) FROM (SELECT COUNT(cdr.id_) id_
|
|
|
FROM children_day_reserve cdr
|
|
|
<include refid="queryChildrenStatisticsSql"/>
|
|
|
- GROUP BY cdr.music_group_id_
|
|
|
+ GROUP BY cdr.music_group_id_) c
|
|
|
</select>
|
|
|
<sql id="queryChildrenStatisticsSql">
|
|
|
<where>
|
|
@@ -134,7 +132,7 @@
|
|
|
<result property="isReserve" column="is_reserve_"/>
|
|
|
<result property="phone" column="phone_"/>
|
|
|
</resultMap>
|
|
|
- <select id="countChildrenStatisticsDetail" resultType="java.lang.Integer">
|
|
|
+ <select id="countChildrenStatisticsDetail" resultType="int">
|
|
|
SELECT COUNT(cdr.id_) FROM children_day_reserve cdr
|
|
|
LEFT JOIN sys_user su ON su.id_ = cdr.user_id_
|
|
|
<include refid="queryChildrenStatisticsDetailSql"/>
|
|
@@ -155,6 +153,12 @@
|
|
|
<if test="isReserve != null">
|
|
|
AND cdr.is_reserve_ = #{isReserve}
|
|
|
</if>
|
|
|
+ <if test="musicGroupId != null and musicGroupId != ''">
|
|
|
+ AND cdr.music_group_id_ = #{musicGroupId}
|
|
|
+ </if>
|
|
|
+ <if test="musicGroupId == null">
|
|
|
+ AND cdr.music_group_id_ IS NULL
|
|
|
+ </if>
|
|
|
</where>
|
|
|
</sql>
|
|
|
</mapper>
|