Что мне нужно изменить, чтобы получить последовательный вывод? - PullRequest
0 голосов
/ 16 июня 2020

Я новичок с ie до SQL. Мне поставили задачу, где мне нужно найти решение для получения последовательного вывода.

Ниже приведен запрос:

use admin_database;

select rate , enrolledcount, is_request, is_wishlist, is_enroll, review_given_by_student, x.course_id, course_image_path, course_price, trainer_name, course_subtitle, course_title, max(batch_registration_end_date) as batch_registration_end_date, max(batch_start_date) as batch_start_date 
    from (
    SELECT
       (
        CASE WHEN noofStudents = 0 THEN 0 ELSE(
            ratings_by_enrolled_student /(5 * noofStudents)
        ) *100
    END
        ) AS rate,
    enrolledcount,
    is_request,
    is_wishlist,
    is_enroll,
    review_given_by_student,
    x.course_id,
    course_image_path,
    course_price,
    trainer_name,
    course_subtitle,
    course_title,
    batch_registration_end_date,
    batch_start_date
    FROM (
    SELECT
     COUNT( distinct e.enrolled_course_details_id) AS enrolledcount,

     SUM(
            CASE WHEN e.rating_by_enrolled_student <> 0 THEN 1 ELSE 0
        END
    ) AS noofStudents,
    SUM(
        CASE WHEN e.rating_by_enrolled_student <> 0 THEN e.rating_by_enrolled_student ELSE 0
    END
    ) AS ratings_by_enrolled_student,
    SUM(
        CASE WHEN LTRIM(RTRIM(e.review_given_by_student)) <> '' OR LTRIM(RTRIM(e.review_title)) <> '' THEN 1 ELSE 0
    END
    ) AS review_given_by_student,
        (SELECT count(s.user_id) FROM StudentEnrollRequest s WHERE s.user_id=".$user_id." AND accept_status='pending' AND s.course_id=c.course_id) AS is_request,
    (SELECT count(cw.user_id) FROM CourseWishlist cw WHERE cw.user_id=".$user_id." AND cw.course_id=c.course_id) AS is_wishlist,
    (SELECT count(eu.user_id) FROM EnrolledCourseDetails eu WHERE eu.user_id=".$user_id." AND eu.course_id=c.course_id) AS is_enroll,
    c.course_id AS course_id,
    c.course_image_path AS course_image_path,
    c.course_price AS course_price,
    c.trainer_name AS trainer_name,
    c.course_subtitle AS course_subtitle,
    c.course_title AS course_title
    FROM Courses c 

    LEFT JOIN EnrolledCourseDetails e ON
    c.course_id = e.course_id
    WHERE c.course_id IN ('515156638953610000000','586156386555710000099','676156155235810000000','740156155400610000000')  
     GROUP BY
    course_id,
    course_image_path,
    course_price,
    trainer_name,
    course_subtitle,
    course_title   
      )x inner join CourseBatch y on x.course_id=y.course_id) x group by rate ,
    enrolledcount,
    is_request,
    is_wishlist,
    is_enroll,
    review_given_by_student,
    x.course_id,
    course_image_path,
    course_price,
    trainer_name,
    course_subtitle,
    course_title
  • Я передал course_id в скобках предложения WHERE. Мне нужна таблица, в которой вывод должен быть отсортирован по course_id последовательным образом, как передано в скобках, а не отсортировано случайным образом.
  • Ниже приведен результат, который я получаю в настоящее время. не соответствует последовательности, указанной в скобках: Output_Image

Буду признателен, если кто-нибудь сможет предоставить мне решение с подробным объяснением.

PS : Извините за отступ, я только что скопировал запрос как есть, а также я новичок ie, следовательно, я все еще на стадии обучения. Заранее спасибо за ваше время и помощь.

1 Ответ

0 голосов
/ 16 июня 2020

добавьте заказ по x.course_id в конце вашего запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...