Я пытаюсь получить количество студентов в классе, которые присутствуют.GROUP BY in Union MYSQL
условия являются:
Все студенты из классов, где ClassroomID является < 99 и есть (DropTime <> '00: 00' и PickUpTime = '00: 00') и дата 20161111
Все студенты из классов, где ClassroomId составляет> 99 и есть (DropTime = '00: 00') и дата 20161111
Я использую ю е следующий запрос в MySQL, и он отлично работает, и я получаю правильный результат:
SELECT
COUNT(a.Id) AS total, c.Name
FROM
Attendance a
INNER JOIN
Classroom c ON a.classroom = c.Id
WHERE
DropDate = '20161111'
AND DropTime <> '00:00'
AND PickupTime = '00:00'
GROUP BY Name
кроме того, что, когда я пытаюсь сделать профсоюз, чтобы получить результаты для другого класса (т.е. ClassroomID> 99) он не приносит каждый класс и только приносит 1 класс с общим счетом. Это запрос объединения, который я использую;
SELECT
SUM(total), Name
FROM
(SELECT
COUNT(a.Id) AS total, c.Name
FROM
Attendance a
INNER JOIN Classroom c ON a.classroom = c.Id
WHERE
DropDate = '20161111'
AND DropTime <> '00:00'
AND PickupTime = '00:00'
AND c.Id < 99
UNION ALL
SELECT
COUNT(a.Id) AS total, c.Name
FROM
Attendance a
INNER JOIN Classroom c ON a.classroom = c.Id
WHERE
DropDate = '20161111'
AND PickupTime = '00:00'
AND c.Id > 99) t
GROUP BY Name
Отличное спасибо! – snowflakes74