Хотя вы, конечно, можете union
запрос агрегированных итогов до конца вашего исходного запроса, на мой взгляд, это было бы очень плохой практикой и нежелательно для любого реального приложения.
Учтите, чторезультирующий запрос больше не может использоваться для какого-либо значимого анализа данных: если он отображается в сетке данных, пользователь не сможет сортировать данные, если итоговая строка не будет разбросана по остальным данным;пользователь больше не может использовать встроенную опцию Totals
для выполнения своей собственной операции агрегирования, а вставка строки, идентифицируемой только термином totals
, может даже конфликтовать с другими данными в наборе.
Вместо этого я бы предложил отображать итоги в совершенно отдельном элементе управления формы, используя отдельный запрос, такой как следующий (на основе вашего собственного примера):
SELECT Count(Course.CourseNo) as Courses, Sum(Course.CrHrs) as Hours
FROM Course INNER JOIN Sections ON Course.CourseNo = Sections.CourseNo
WHERE Sections.Term = "spring";
Однако, поскольку CrHrs
являются полями внутриВаша таблица Course
, а не ваша таблица Sections
, может быть кратна желаемому результату с числом часов, умноженным на количество соответствующих записей в таблице Sections
.
Еслиэто тот случай, следующие могут быть более подходящими:
SELECT Count(Course.CourseNo) as Courses, Sum(Course.CrHrs) as Hours
FROM
Course INNER JOIN
(SELECT DISTINCT s.CourseNo FROM Sections s WHERE s.Term = "spring") q
ON Course.CourseNo = q.CourseNo