Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Составление SQL-запросов > Вывести под таблицей общее кол-во записей


Автор: Ciber SLasH 25.4.2014, 10:50
Приветствую всех!
Есть запрос:
Код
SELECT `kvit`, `statea`, `smaster` FROM `service` WHERE `statea` IN (3) ORDER BY `smaster`;

Выводит следующее:
Цитата
kvit    statea  smaster
1111   3       Administrator
1232    3       Антон
1453    3       Антон
1678    3       Антон
1876    3       Антон
1987   3       Антон
1023   3       Дмитрий
1022   3       Дмитрий
1141    3       Дмитрий
1122    3       Фёдор
1222    3       Юрий
1112    3       Юрий
1113   3       Юрий

Как модифицировать запрос, чтбы в конце вывести общее кол-во записей?
Чтобы выводилось типа такого:
Цитата
kvit    statea  smaster
1111   3       Administrator
1232    3       Антон
1453    3       Антон
1678    3       Антон
1876    3       Антон
1987   3       Антон
1023   3       Дмитрий
1022   3       Дмитрий
1141    3       Дмитрий
1122    3       Фёдор
1222    3       Юрий
1112    3       Юрий
1113   3       Юрий
-----------
Total: 13


Автор: Akina 25.4.2014, 11:57
WITH ROLLUP

Автор: Ciber SLasH 25.4.2014, 12:17
Не работает.
Код
SELECT `kvit`, `statea`, `smaster` FROM `service` WHERE `statea` IN (3) GROUP BY `kvit` WITH ROLLUP

Выводит:
Цитата
kvit    statea  smaster
1023   3       Дмитрий
1111   3       Administrator
1023   3       Дмитрий
1232    3       Антон
1222    3       Юрий
1112    3       Юрий
1453    3       Антон
1022   3       Дмитрий
1678    3       Антон
1122    3       Фёдор
1876    3       Антон
1987   3       Антон
1141    3       Дмитрий
1113   3       Юрий
NULL    3       Антон

и сортировки нет по полю smaster, а если добавить:
Код
SELECT `kvit`, `statea`, `smaster` FROM `service` WHERE `statea` IN (3) GROUP BY `kvit` WITH ROLLUP ORDER BY `smaster`;

то выдаётся ошибка:
Цитата
ERROR 1221 (HY000)

База на MySQL 5

Автор: Akina 25.4.2014, 15:21
То есть справку то ли не читаешь, то ли не понимаешь... ну тогда считай на клиенте.

Автор: Ciber SLasH 26.4.2014, 03:28
Сделал так:
Код
SELECT `kvit`, `statea`, `smaster`
FROM `service`
WHERE `statea` = 3

UNION

SELECT 'TOTAL:', COUNT(*), ''
FROM `service`
WHERE `statea` = 3
ORDER BY `smaster`;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)