|
@@ -310,64 +310,65 @@
|
|
|
<select id="getFinishRate" resultType="java.util.Map">
|
|
<select id="getFinishRate" resultType="java.util.Map">
|
|
|
SELECT
|
|
SELECT
|
|
|
z2.courseId AS courseId,
|
|
z2.courseId AS courseId,
|
|
|
- TRUNC(z1.alreadyCount * 1.0 / z2.allCount, 2) AS finishRate
|
|
|
|
|
|
|
+ IFNULL(TRUNC(z1.alreadyCount * 1.0 / z2.allCount, 2),0) AS finishRate
|
|
|
FROM (
|
|
FROM (
|
|
|
- SELECT
|
|
|
|
|
- t1.courseId AS courseId,
|
|
|
|
|
- IFNULL(COUNT(t1.courseId AS courseId),0) AS alreadyCount
|
|
|
|
|
- from(
|
|
|
|
|
- SELECT
|
|
|
|
|
- csb.USER_ID AS userId,
|
|
|
|
|
- cch.ID AS hourId,
|
|
|
|
|
- cc.ID AS chapterId,
|
|
|
|
|
- ci.COURSE_ID AS courseId
|
|
|
|
|
- FROM (SELECT csb1.USER_ID,csb1.HOUR_ID FROM COURSE_STUDENT_BURIALPOINT csb1 WHERE csb1.DELETE_FLAG ='NOT_DELETE' AND csb1.FUNC_TYPE='1' AND csb1.TYPE='1' GROUP BY csb1.USER_ID,csb1.HOUR_ID) csb
|
|
|
|
|
- LEFT JOIN COURSE_CLASSHOUR cch ON cch.ID=csb.HOUR_ID AND cch.DELETE_FLAG ='NOT_DELETE'
|
|
|
|
|
- LEFT JOIN COURSE_CHAPTER cc ON cc.ID=cch.CHAPTER_ID AND cc.DELETE_FLAG ='NOT_DELETE'
|
|
|
|
|
- LEFT JOIN COURSE_INFO ci ON ci.COURSE_ID =cc.COURSE_ID AND ci.DELETE_FLAG ='NOT_DELETE'
|
|
|
|
|
- WHERE 1=1
|
|
|
|
|
- )t1
|
|
|
|
|
- WHERE 1=1
|
|
|
|
|
- AND t1.hourId IS NOT NULL
|
|
|
|
|
- AND t1.chapterId IS NOT NULL
|
|
|
|
|
- AND t1.courseId IS NOT NULL
|
|
|
|
|
- <if test="userId != null and userId != ''">
|
|
|
|
|
- AND t1.userId = #{userId}
|
|
|
|
|
- </if>
|
|
|
|
|
- <if test="courseId != null and courseId != ''">
|
|
|
|
|
- AND t1.courseId = #{courseId}
|
|
|
|
|
- </if>
|
|
|
|
|
- GROUP BY t1.courseId
|
|
|
|
|
- )z1
|
|
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ t2.courseId AS courseId,
|
|
|
|
|
+ IFNULL(COUNT(t2.courseId AS courseId),0) AS allCount
|
|
|
|
|
+ FROM(
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ cch.ID AS hourId,
|
|
|
|
|
+ cc.ID AS chapterId,
|
|
|
|
|
+ ci.COURSE_ID AS courseId
|
|
|
|
|
+ FROM (
|
|
|
|
|
+ SELECT ci1.* FROM COURSE_INFO ci1
|
|
|
|
|
+ WHERE ci1.DELETE_FLAG ='NOT_DELETE'
|
|
|
|
|
+ <if test="courseId != null and courseId != ''">
|
|
|
|
|
+ AND ci1.COURSE_ID = #{courseId}
|
|
|
|
|
+ </if>
|
|
|
|
|
+ ) ci
|
|
|
|
|
+ LEFT JOIN COURSE_CHAPTER cc ON ci.COURSE_ID =cc.COURSE_ID AND cc.DELETE_FLAG ='NOT_DELETE'
|
|
|
|
|
+ LEFT JOIN COURSE_CLASSHOUR cch ON cc.ID=cch.CHAPTER_ID AND cch.DELETE_FLAG ='NOT_DELETE'
|
|
|
|
|
+ WHERE ci.DELETE_FLAG ='NOT_DELETE'
|
|
|
|
|
+ )t2
|
|
|
|
|
+ WHERE 1=1
|
|
|
|
|
+ AND t2.hourId IS NOT NULL
|
|
|
|
|
+ AND t2.chapterId IS NOT NULL
|
|
|
|
|
+ AND t2.courseId IS NOT NULL
|
|
|
|
|
+ <if test="courseId != null and courseId != ''">
|
|
|
|
|
+ AND t2.courseId = #{courseId}
|
|
|
|
|
+ </if>
|
|
|
|
|
+ GROUP BY t2.courseId
|
|
|
|
|
+ )z2
|
|
|
LEFT JOIN(
|
|
LEFT JOIN(
|
|
|
- SELECT
|
|
|
|
|
- t2.courseId AS courseId,
|
|
|
|
|
- IFNULL(COUNT(t2.courseId AS courseId),0) AS allCount
|
|
|
|
|
- FROM(
|
|
|
|
|
- SELECT
|
|
|
|
|
- cch.ID AS hourId,
|
|
|
|
|
- cc.ID AS chapterId,
|
|
|
|
|
- ci.COURSE_ID AS courseId
|
|
|
|
|
- FROM (
|
|
|
|
|
- SELECT ci1.* FROM COURSE_INFO ci1
|
|
|
|
|
- WHERE ci1.DELETE_FLAG ='NOT_DELETE'
|
|
|
|
|
- <if test="courseId != null and courseId != ''">
|
|
|
|
|
- AND ci1.COURSE_ID = #{courseId}
|
|
|
|
|
- </if>
|
|
|
|
|
- ) ci
|
|
|
|
|
- LEFT JOIN COURSE_CHAPTER cc ON ci.COURSE_ID =cc.COURSE_ID AND cc.DELETE_FLAG ='NOT_DELETE'
|
|
|
|
|
- LEFT JOIN COURSE_CLASSHOUR cch ON cc.ID=cch.CHAPTER_ID AND cch.DELETE_FLAG ='NOT_DELETE'
|
|
|
|
|
- WHERE ci.DELETE_FLAG ='NOT_DELETE'
|
|
|
|
|
- )t2
|
|
|
|
|
- WHERE 1=1
|
|
|
|
|
- AND t2.hourId IS NOT NULL
|
|
|
|
|
- AND t2.chapterId IS NOT NULL
|
|
|
|
|
- AND t2.courseId IS NOT NULL
|
|
|
|
|
- <if test="courseId != null and courseId != ''">
|
|
|
|
|
- AND t2.courseId = #{courseId}
|
|
|
|
|
- </if>
|
|
|
|
|
- GROUP BY t2.courseId
|
|
|
|
|
- )z2 ON z1.courseId=z2.courseId
|
|
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ cin.COURSE_ID AS courseId,
|
|
|
|
|
+ IFNULL(COUNT(t1.courseId AS courseId),0) AS alreadyCount
|
|
|
|
|
+ FROM COURSE_INFO cin
|
|
|
|
|
+ LEFT JOIN (
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ csb.USER_ID AS userId,
|
|
|
|
|
+ cch.ID AS hourId,
|
|
|
|
|
+ cc.ID AS chapterId,
|
|
|
|
|
+ ci.COURSE_ID AS courseId
|
|
|
|
|
+ FROM (SELECT csb1.USER_ID,csb1.HOUR_ID FROM COURSE_STUDENT_BURIALPOINT csb1 WHERE csb1.DELETE_FLAG ='NOT_DELETE' AND csb1.FUNC_TYPE='1' AND csb1.TYPE='1' GROUP BY csb1.USER_ID,csb1.HOUR_ID) csb
|
|
|
|
|
+ LEFT JOIN COURSE_CLASSHOUR cch ON cch.ID=csb.HOUR_ID AND cch.DELETE_FLAG ='NOT_DELETE'
|
|
|
|
|
+ LEFT JOIN COURSE_CHAPTER cc ON cc.ID=cch.CHAPTER_ID AND cc.DELETE_FLAG ='NOT_DELETE'
|
|
|
|
|
+ LEFT JOIN COURSE_INFO ci ON ci.COURSE_ID =cc.COURSE_ID AND ci.DELETE_FLAG ='NOT_DELETE'
|
|
|
|
|
+ WHERE 1=1
|
|
|
|
|
+ AND cch.ID IS NOT NULL
|
|
|
|
|
+ AND cc.ID IS NOT NULL
|
|
|
|
|
+ AND ci.COURSE_ID IS NOT NULL
|
|
|
|
|
+ <if test="userId != null and userId != ''">
|
|
|
|
|
+ AND csb.USER_ID = #{userId}
|
|
|
|
|
+ </if>
|
|
|
|
|
+ )t1 ON cin.COURSE_ID=t1.courseId AND cin.DELETE_FLAG ='NOT_DELETE'
|
|
|
|
|
+ WHERE 1=1
|
|
|
|
|
+ <if test="courseId != null and courseId != ''">
|
|
|
|
|
+ AND t1.courseId = #{courseId}
|
|
|
|
|
+ </if>
|
|
|
|
|
+ GROUP BY cin.COURSE_ID
|
|
|
|
|
+ )z1 ON z1.courseId=z2.courseId
|
|
|
where 1=1
|
|
where 1=1
|
|
|
<if test="courseId != null and courseId != ''">
|
|
<if test="courseId != null and courseId != ''">
|
|
|
AND z2.courseId = #{courseId}
|
|
AND z2.courseId = #{courseId}
|