выбрать курсы с общей продолжительностью менее 20 часов - PullRequest
0 голосов
/ 10 мая 2018

Мне нужно выбрать список курсов из таблицы с именами и продолжительностью.

Выберите список таким образом, чтобы все курсы с суммой их продолжительности менее 20 часов, а также все курсы, оставшиеся в таблице отдельно.

Когда речь идет о курсах продолжительностью от 20 часов, то есть когда курс рассчитан на период от 19 до 23 часов продолжительностью 4 часа, мне нужно отнести его к 1-й категории. Я попробовал приведенный ниже код, но он не учитывает курс, который проходит между двумя сторонами по 20 часов.

SELECT ID,
       Course 
FROM
    (
        SELECT a.ID,
               a.COURSE,
               a.DURATION,
               SUM(b.DURATION)  CUM_SUM 
        FROM #TempTable a JOIN #TempTable b ON a.ID >= b.ID 
        GROUP BY a.ID,a.COURSE,a.DURATION 
    ) temp 
WHERE CUM_SUM <=20

Как я могу получить курсы, которые попадают между рассматриваемым лимитом, в категорию, которую мне нужно выбрать?

1 Ответ

0 голосов
/ 10 мая 2018

Удалите Duration из вашего под-выбора и получите только SUM:

SELECT ID,
       Course 
FROM
    (
        SELECT a.ID,
               a.COURSE,
               SUM(b.DURATION)  CUM_SUM 
        FROM #TempTable a JOIN #TempTable b ON a.ID >= b.ID 
        GROUP BY a.ID,a.COURSE
    ) temp 
WHERE CUM_SUM <=20
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...