SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 28.01.2011 09:56:33

FDL45
Завсегдатай
Зарегистрирован: 29.11.2010
Сообщений: 40

Как перестроить запрос?

SELECT report_eo.*, rep_eo.* FROM(SELECT DATE_FORMAT(`Date_report`, '%d-%m-%Y') as `Date_report2`, sum(`KolZKUZDay`) as `KolZKUZNarost`, sum(`KolMPDay`) as `KolMPNarost`,sum(`KolZKUVSDay`) as `KolZKUVSNarost`, `Otdel` FROM `report_eo` WHERE `Otdel` LIKE '%' AND `Date_Report`>='2011-01-01' AND `Date_Report`<='2011-01-27' GROUP BY `Otdel` ORDER BY `Otdel`) as `rep_eo` JOIN `report_eo` ON rep_eo.Otdel=report_eo.Otdel WHERE `Date_Report`='2011-01-27'

Скрин результата запроса прилагается

Нужно чтобы последняя строка выдавала суммарный итог по всем столбцам кроме 1-гоsmile

Итог| Сум | Сум1  | Сум2  | Сум3 | Сум4 |


Прикрепленные файлы:
Attachment Icon ололо.JPG, Размер: 144,478 байт, Скачано: 378

Неактивен

 

#2 28.01.2011 15:21:07

Altukhov
Участник
Зарегистрирован: 25.01.2011
Сообщений: 9

Re: Как перестроить запрос?

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

так сделай COUNT по всем столбца данной таблицы и припиши внизу своего запроса. так:

SELECT report_eo.*, rep_eo.* FROM(SELECT DATE_FORMAT(`Date_report`, '%d-%m-%Y') as `Date_report2`, sum(`KolZKUZDay`) as `KolZKUZNarost`, sum(`KolMPDay`) as `KolMPNarost`,sum(`KolZKUVSDay`) as `KolZKUVSNarost`, `Otdel` FROM `report_eo` WHERE `Otdel` LIKE '%' AND `Date_Report`>='2011-01-01' AND `Date_Report`<='2011-01-27' GROUP BY `Otdel` ORDER BY `Otdel`) as `rep_eo` JOIN `report_eo` ON rep_eo.Otdel=report_eo.Otdel WHERE `Date_Report`='2011-01-27'

UNION

SELECT count(....

Неактивен

 

#3 28.01.2011 17:21:36

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Как перестроить запрос?

А если немного поразбираться, то можно написать в подзапросе еще одну
сумму просто:
sum(`KolZKUZDay`), sum(`KolMPDay`),  ..., sum(`KolZKUZDay`) + sum(`KolMPDay`) AS total

Неактивен

 

#4 31.01.2011 05:34:13

FDL45
Завсегдатай
Зарегистрирован: 29.11.2010
Сообщений: 40

Re: Как перестроить запрос?

Хм, получается что 2-й раз сумму не использовать. Или я что-то не так понимаю?

Отредактированно FDL45 (31.01.2011 07:33:29)

Неактивен

 

#5 31.01.2011 19:04:24

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Как перестроить запрос?

Почему не использовать? У Вас есть корзина с двумя яблоками и тремя
грушами. В результате Вам нужно получить выборку с полями «яблок»,
«груш», «всего». Вы так и считаете — всего — это sum(яблок) + sum(груш).

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson