我需要从表中选择具有名称和持续时间的课程列表。
选择列表,使所有课程的持续时间总和低于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
如何将所考虑的限制之间的课程纳入我需要选择的类别?
答案 0 :(得分:0)
从您的子选择中移除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