Advertisement
Guest User

Untitled

a guest
Mar 27th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.59 KB | None | 0 0
  1. SELECT DISTINCT
  2. SUBJECT_PLAN_STUDENT_ID,
  3. STUDENT_KEY_ID,
  4. IS_SHOW,
  5. PLAN_STUDENT_DESCRIPTION,
  6. LAST_NAME,
  7. FIRST_NAME,
  8. ACTUAL_HOUR,
  9. TOTAL_HOUR,
  10. ATTENDANCE,
  11. ATTENDANCE_PERCENT,
  12. PROGRESS_MARK,
  13. ROUND(PROGRESS_MARK_PERCENT, $float) AS PROGRESS_MARK_PERCENT,
  14. SEMISTER_SCORE,
  15. ROUND(SEMISTER_SCORE_PERCENT, $float) AS SEMISTER_SCORE_PERCENT,
  16. (
  17. SELECT
  18. sg.GRADE
  19. FROM CAM_CLASS_KEY ck
  20. INNER JOIN CAM_PROGRAM_GRADE pg on ck.PROGRAM_ID = pg.PROGRAM_ID
  21. INNER JOIN CAM_GRADE_LEVEL cl ON pg.GRADE_LEVEL_ID = cl.GRADE_LEVEL_ID
  22. INNER JOIN CAM_SUBJECT_GRADE sg on cl.GRADE_LEVEL_ID = sg.GRADE_LEVEL_ID
  23. WHERE CLASS_KEY_ID = $classKeyId
  24. AND MARK_FROM <= ROUND(ATTENDANCE_PERCENT+PROGRESS_MARK_PERCENT+SEMISTER_SCORE_PERCENT, $float)
  25. AND ROUND(ATTENDANCE_PERCENT+PROGRESS_MARK_PERCENT+SEMISTER_SCORE_PERCENT, $float ) <= MARK_TO
  26. ) AS FINAL_MARK_S,
  27. ROUND(ATTENDANCE_PERCENT+PROGRESS_MARK_PERCENT+SEMISTER_SCORE_PERCENT) AS FINAL_MARK
  28. FROM (
  29. SELECT
  30. s.SUBJECT_PLAN_STUDENT_ID,
  31. s.STUDENT_KEY_ID,
  32. s.IS_SHOW,
  33. s.PLAN_STUDENT_DESCRIPTION,
  34. per.". $languageCode ."LAST_NAME AS LAST_NAME,
  35. per.". $languageCode ."FIRST_NAME AS FIRST_NAME,
  36. CASE WHEN tem.ACTUAL_HOUR IS NULL THEN tem2.SCHEDULE_DATE ELSE tem.ACTUAL_HOUR END AS ACTUAL_HOUR,
  37. CASE WHEN tem.TOTAL_HOUR IS NULL THEN tem2.ATTENDANCE_COUNT ELSE tem.TOTAL_HOUR END AS TOTAL_HOUR,
  38. CASE WHEN tem.ACTUAL_HOUR IS NULL THEN
  39. CASE WHEN tem2.SCHEDULE_DATE > 0 THEN ROUND(tem2.ATTENDANCE_COUNT /tem2.SCHEDULE_DATE, $float)*100 ELSE 0 END
  40. ELSE ROUND(tem.TOTAL_HOUR /tem.ACTUAL_HOUR, $float)*100 END
  41. AS ATTENDANCE,
  42. CASE WHEN ". $markData['attendance'] ." > 0 THEN
  43. CASE WHEN tem.TOTAL_HOUR IS NULL THEN
  44. CASE WHEN tem2.SCHEDULE_DATE > 0 THEN ROUND(ROUND(tem2.ATTENDANCE_COUNT/tem2.SCHEDULE_DATE, $float)*100*10)/100 ELSE 0 END
  45. ELSE ROUND(ROUND(tem.TOTAL_HOUR/tem.ACTUAL_HOUR, $float)*100*". $markData['attendance'] .", $float)/100 END
  46. ELSE 0 END AS ATTENDANCE_PERCENT,
  47. CASE WHEN tem2.SCHEDULE_DATE > 0 AND ". $markData['progress'] ." > 0
  48. THEN tem1.MARK
  49. ELSE 0 END AS PROGRESS_MARK,
  50. CASE WHEN tem2.SCHEDULE_DATE > 0 AND ". $markData['progress'] ." > 0
  51. THEN CASE WHEN tem1.MARK IS NULL AND tem1.PROGRESS_MARK IS NULL THEN 0 ELSE ROUND((tem1.MARK*". $markData['progress'] ."/tem1.PROGRESS_MARK), $float) END
  52. ELSE 0 END AS PROGRESS_MARK_PERCENT,
  53. CASE WHEN tem.SEMISTER_SCORE IS NULL THEN 0 ELSE tem.SEMISTER_SCORE END AS SEMISTER_SCORE,
  54. CASE WHEN ". $markData['exam'] ." > 0
  55. THEN CASE WHEN tem.SEMISTER_SCORE IS NULL THEN 0 ELSE ROUND(tem.SEMISTER_SCORE*". $markData['exam'] .", $float)/100
  56. END
  57. ELSE 0 END AS SEMISTER_SCORE_PERCENT
  58. FROM cam_subject_plan p
  59. INNER JOIN cam_subject_plan_student s ON p.SUBJECT_PLAN_ID = s.SUBJECT_PLAN_ID
  60. INNER JOIN cam_student_key stuk ON s.STUDENT_KEY_ID = stuk.STUDENT_KEY_ID AND p.CLASS_KEY_ID = stuk.CLASS_KEY_ID
  61. INNER JOIN VW_CAM_STUDENT per ON stuk.STUDENT_KEY_ID = per.STUDENT_KEY_ID
  62. LEFT JOIN (
  63. SELECT
  64. mar.SEMISTER_SCORE, stu.SUBJECT_PLAN_STUDENT_ID, mar.ACTUAL_HOUR, mar.TOTAL_HOUR
  65. FROM cam_subject_plan_student stu
  66. INNER JOIN cam_student_attempt att ON stu.SUBJECT_PLAN_STUDENT_ID = att.SUBJECT_PLAN_STUDENT_ID
  67. INNER JOIN cam_mark mar ON att.STUDENT_ATTEMPT_ID = mar.STUDENT_ATTEMPT_ID
  68. WHERE mar.ACTUAL_HOUR IS NOT NULL AND mar.TOTAL_HOUR IS NOT NULL AND mar.TOTAL_HOUR <> 0 AND mar.ACTUAL_HOUR <> 0
  69. ) tem ON s.SUBJECT_PLAN_STUDENT_ID = tem.SUBJECT_PLAN_STUDENT_ID
  70. LEFT JOIN (
  71. SELECT
  72. tem2.STUDENT_KEY_ID,
  73. COUNT(tem2.SCHEDULE_DATE) AS SCHEDULE_COUNT,
  74. CASE WHEN SUM(tem3.MARK) IS NULL THEN 0 ELSE SUM(tem3.MARK) END AS MARK,
  75. CASE WHEN SUM(tem3.PROGRESS_MARK) IS NULL THEN 0 ELSE SUM(tem3.PROGRESS_MARK) END AS PROGRESS_MARK
  76. FROM (
  77. SELECT stuk.STUDENT_KEY_ID, tem.SCHEDULE_DATE, tem.SUBJECT_ID, stuk.CLASS_KEY_ID
  78. FROM cam_student_key stuk
  79. LEFT OUTER JOIN (
  80. SELECT
  81. DISTINCT sche.SCHEDULE_DATE,
  82. sche.CLASS_KEY_ID,
  83. pl.SUBJECT_ID
  84. FROM cam_subject_plan pl
  85. INNER JOIN cam_subject_schedule sche ON pl.SUBJECT_PLAN_ID = sche.SUBJECT_PLAN_ID AND pl.SUBJECT_ID = sche.SUBJECT_ID AND pl.CLASS_KEY_ID = sche.CLASS_KEY_ID
  86. INNER JOIN cam_student_mark mar ON sche.SUBJECT_SCHEDULE_ID = mar.SUBJECT_SCHEDULE_ID
  87. WHERE pl.CLASS_KEY_ID = $classKeyId AND pl.SUBJECT_ID = $subjectId AND pl.SEMISTER_PLAN_ID = $semisterPlanId
  88. ) tem ON stuk.CLASS_KEY_ID = tem.CLASS_KEY_ID
  89. WHERE stuk.CLASS_KEY_ID = $classKeyId AND tem.SUBJECT_ID = $subjectId AND stuk.IS_ACTIVE = 1
  90. ORDER BY stuk.STUDENT_KEY_ID
  91. ) tem2
  92. LEFT JOIN (
  93. SELECT
  94. DISTINCT
  95. sche.SCHEDULE_DATE,
  96. sche.CLASS_KEY_ID,
  97. pl.SUBJECT_ID,
  98. sche.PROGRESS_MAX_MARK AS PROGRESS_MARK,
  99. mar.TAKE_MARK AS MARK,
  100. mar.STUDENT_KEY_ID
  101. FROM cam_subject_plan pl
  102. INNER JOIN cam_subject_schedule sche ON pl.SUBJECT_PLAN_ID = sche.SUBJECT_PLAN_ID AND pl.SUBJECT_ID = sche.SUBJECT_ID AND pl.CLASS_KEY_ID = sche.CLASS_KEY_ID
  103. INNER JOIN cam_student_mark mar ON sche.SUBJECT_SCHEDULE_ID = mar.SUBJECT_SCHEDULE_ID
  104. WHERE pl.SEMISTER_PLAN_ID = $semisterPlanId
  105. ) tem3 ON tem2.SCHEDULE_DATE = tem3.SCHEDULE_DATE AND tem2.CLASS_KEY_ID = tem3.CLASS_KEY_ID AND tem2.SUBJECT_ID = tem3.SUBJECT_ID AND tem2.STUDENT_KEY_ID = tem3.STUDENT_KEY_ID
  106. WHERE tem3.MARK IS NOT NULL AND tem3.PROGRESS_MARK IS NOT NULL
  107. GROUP BY tem2.STUDENT_KEY_ID
  108. ) tem1 ON stuk.STUDENT_KEY_ID = tem1.STUDENT_KEY_ID
  109. LEFT JOIN (
  110. SELECT
  111. stuk.STUDENT_KEY_ID,
  112. CASE WHEN tem.ATTENDANCE_COUNT IS NULL THEN 0 ELSE tem.ATTENDANCE_COUNT END AS ATTENDANCE_COUNT,
  113. tem2.SCHEDULE_DATE
  114. FROM cam_student_key stuk
  115. LEFT OUTER JOIN (
  116. SELECT
  117. COUNT(DISTINCT att.ATTENDANCE_ID) AS ATTENDANCE_COUNT,
  118. att.STUDENT_KEY_ID
  119. FROM cam_subject_plan p
  120. INNER JOIN cam_subject_schedule s ON p.SUBJECT_PLAN_ID = s.SUBJECT_PLAN_ID AND p.CLASS_KEY_ID = s.CLASS_KEY_ID AND p.SUBJECT_ID = s.SUBJECT_ID
  121. INNER JOIN cam_attendance att ON s.SUBJECT_SCHEDULE_ID = att.SUBJECT_SCHEDULE_ID
  122. INNER JOIN cam_attendance_type attt ON att.ATTENDANCE_TYPE_ID = attt.ATTENDANCE_TYPE_ID
  123. WHERE p.CLASS_KEY_ID = $classKeyId
  124. AND attt.IS_MANUAL = 1
  125. AND p.SUBJECT_ID = $subjectId
  126. GROUP BY att.STUDENT_KEY_ID
  127. ) tem ON stuk.STUDENT_KEY_ID = tem.STUDENT_KEY_ID
  128. LEFT OUTER JOIN (
  129. SELECT COUNT(s.SCHEDULE_DATE) AS SCHEDULE_DATE
  130. FROM cam_subject_plan p
  131. INNER JOIN cam_subject_schedule s ON p.SUBJECT_PLAN_ID = s.SUBJECT_PLAN_ID AND p.CLASS_KEY_ID = s.CLASS_KEY_ID AND p.SUBJECT_ID = s.SUBJECT_ID
  132. WHERE p.CLASS_KEY_ID = $classKeyId
  133. AND p.SUBJECT_ID = $subjectId
  134. ) tem2 on tem2.SCHEDULE_DATE = tem2.SCHEDULE_DATE
  135. WHERE stuk.CLASS_KEY_ID = $classKeyId AND stuk.IS_ACTIVE = 1
  136. ORDER BY stuk.STUDENT_KEY_ID
  137. ) tem2 ON stuk.STUDENT_KEY_ID = tem2.STUDENT_KEY_ID
  138. WHERE p.SUBJECT_ID = $subjectId AND p.CLASS_KEY_ID = $classKeyId AND p.SEMISTER_PLAN_ID = $semisterPlanId AND stuk.IS_ACTIVE = 1 $andWhere ) tem ORDER BY FIRST_NAME
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement