SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 19.02.2016 10:00:40

Tera2017
Завсегдатай
Зарегистрирован: 08.02.2016
Сообщений: 58

Помогите с запросом

Добрый день, имеется таблица:


IDprint |Model|Block|Unit|Xnumber|Dprint|Snumber|Count|IPaddress
 

Подскажите как получить и вывести данные за неделю по дням недели, а так же рассчитать кол-во отпечатков по каждому принтеру за неделю, а так же получить итоговую сумму по каждому Unut
Отпечатки считаются так:
Пятница-Понедельник=Распечатки
.........................................................................................................................................................................
BlockUnit                   |Unit                  |Xnumber           |Понедельник|Вторник|Среда   |Четверг  |Пятница    |Распечатки
.........................................................................................................................................................................
Розничный_бизнес      |Академический    |0930070097       |55850          |  55936 |  56000 | 57000    |   58000    | 2150
Розничный_бизнес      |Юбилейный    |0930070098       |55858          |  55986 |  56700 | 56800    |   59000    | 3142
.........................................................................................................................................................................
                                                                                                                                       Итого по Unit: 5292

create table print(
IDprint INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Model VARCHAR(100) NOT NULL,
Block VARCHAR(100) NOT NULL,
Unit VARCHAR(80) NOT NULL,
Xnumber VARCHAR(80) NOT NULL,
Dprint DATE NOT NULL,
Snumber VARCHAR(80) NOT NULL,
Count INT NOT NULL,
IPaddress VARCHAR(80) NOT NULL
)
ENGINE=INNODB;

Отредактированно Tera2017 (19.02.2016 10:02:20)

Неактивен

 

#2 19.02.2016 23:28:28

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Помогите с запросом

день недели можно определить с помою http://dev.mysql.com/doc/refman/5.7/en/ … _dayofweek

покажите тестовый набор данных и желаемый для него результат.

Неактивен

 

#3 20.02.2016 08:44:04

Tera2017
Завсегдатай
Зарегистрирован: 08.02.2016
Сообщений: 58

Re: Помогите с запросом

Файл с данными


Прикрепленные файлы:
Attachment Icon print.txt, Размер: 14,477 байт, Скачано: 861

Неактивен

 

#4 20.02.2016 08:44:42

Tera2017
Завсегдатай
Зарегистрирован: 08.02.2016
Сообщений: 58

Re: Помогите с запросом

Результат  которого хочу добиться выше

Неактивен

 

#5 20.02.2016 09:58:17

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Помогите с запросом

если правильно понимаю, то

select BlockUnit, Unit, Xnumber, sum(if(DAYOFWEEK(Dprint)=2,`Count`,0)) as 'Понедельник', ... ,
(sum(if(DAYOFWEEK(Dprint)=6,`Count`,0)) - sum(if(DAYOFWEEK(Dprint)=2,`Count`,0))) as 'Распечатки' ...  group by Xnumber;

Неактивен

 

#6 24.02.2016 09:36:45

Tera2017
Завсегдатай
Зарегистрирован: 08.02.2016
Сообщений: 58

Re: Помогите с запросом

Запрос, должен формировать данные за текущую неделю, а сейчас заполняются даже поля за прошлую неделю. Как поправить? Если данных нет за текущую неделю должны проставляться нули. Сегодня среда 24.02.2016.
Пример:


Подразделение             ПН     ВТ  СР    ЧТ    ПТ     СБ
ККО_Юбилейный           0       0    1451 0      0       0
 

Отредактированно Tera2017 (24.02.2016 11:35:51)


Прикрепленные файлы:
Attachment Icon 12354.jpg, Размер: 389,139 байт, Скачано: 297

Неактивен

 

#7 24.02.2016 11:35:36

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Помогите с запросом

where Dprint > now() - interval 7 day

Неактивен

 

#8 24.02.2016 11:51:02

Tera2017
Завсегдатай
Зарегистрирован: 08.02.2016
Сообщений: 58

Re: Помогите с запросом

За четверг пятницу данных быть не должно, но подтягивает старые за прошлый четверг и пятницу. Как быть?


mysql> select Block, Unit, Xnumber, sum(if(DAYOFWEEK(Dprint)=2,`Count`,0)) as 'ПН', sum(if(DAYOFWEEK(Dprint)=3,`Count`,0)) as 'ВТ',
    -> sum(if(DAYOFWEEK(Dprint)=4,`Count`,0)) as 'СР',sum(if(DAYOFWEEK(Dprint)=5,`Count`,0)) as 'ЧТ',
    -> sum(if(DAYOFWEEK(Dprint)=6,`Count`,0)) as 'ПТ',(sum(if(DAYOFWEEK(Dprint)=6,`Count`,0)) - sum(if(DAYOFWEEK(Dprint)=2,`Count`,0))) as 'Всего'from print where Dprint > now() - interval 7 day
    -> group by Block,Unit,Xnumber;
+------------------------+------------------------+------------+------+------+---------+---------+---------+---------+
| Block                  | Unit                   | Xnumber    | ПН   | ВТ   | СР      | ЧТ      | ПТ      | Всего   |
+------------------------+------------------------+------------+------+------+---------+---------+---------+---------+
| ИТ                     | ОИТ                    | 0930070136 |    0 |    0 |    1775 |    1495 |    1569 |    1569 |
| Корпоративный          | КИБ                    | 0930070125 |    0 |    0 |   22041 |   21670 |   21698 |   21698 |
| Корпоративный          | Кредитный              | 0930070110 |    0 |    0 |   11592 |   11554 |   11565 |   11565 |
| Корпоративный          | ООЮЛ                   | 0930070042 |    0 |    0 | 1481395 | 1480288 | 1480520 | 1480520 |
| Корпоративный          | ООЮЛ                   | 0930070065 |    0 |    0 |   66709 |   66604 |   66633 |   66633 |
| Корпоративный          | ООЮЛ                   | 0930070114 |    0 |    0 |   72079 |   71869 |   71905 |   71905 |
| Массовый_бизнес        | ДП_УМБ                 | 0930070032 |    0 |    0 |  162736 |  162450 |  162576 |  162576 |
| Массовый_бизнес        | ДП_УМБ                 | 0930070038 |    0 |    0 |   72346 |   72325 |   72327 |   72327 |
| Массовый_бизнес        | ДП_УМБ                 | 0930070106 |    0 |    0 |   91311 |   90318 |   90526 |   90526 |
| Массовый_бизнес        | ДП_УМБ                 | 0930070107 |    0 |    0 |    2997 |    2929 |    2955 |    2955 |
| Массовый_бизнес        | ДП_УМБ                 | 0930070123 |    0 |    0 |   38400 |   38086 |   38187 |   38187 |
| Массовый_бизнес        | ОО_Волочаевский        | 0930070096 |    0 |    0 |   44385 |   43975 |   44065 |   44065 |
| Массовый_бизнес        | ОО_Континентальный     | 0930070117 |    0 |    0 |  129099 |  128645 |  128760 |  128760 |
| Массовый_бизнес        | ОО_Маршала_Жукова      | 0930070077 |    0 |    0 |  158126 |  157757 |  157817 |  157817 |
| Массовый_бизнес        | ОО_Маршала_Жукова      | 0930070122 |    0 |    0 |   18568 |   18332 |   18348 |   18348 |
| Массовый_бизнес        | ОО_Проспект_культуры   | 0930070090 |    0 |    0 |   21319 |   20961 |   21012 |   21012 |
| Массовый_бизнес        | ОО_Проспект_культуры   | 0930070093 |    0 |    0 |   27257 |   26968 |   27068 |   27068 |
| Массовый_бизнес        | ОО_Юность              | 0930070013 |    0 |    0 |   85304 |   85020 |   85144 |   85144 |
| Операционный           | ГФМ                    | 0930070127 |    0 |    0 |   15661 |   15296 |   15376 |   15376 |
| Операционный           | Касса                  | 0930070128 |    0 |    0 |   65125 |   63558 |   63813 |   63813 |
| Операционный           | ОТОР                   | 0930070101 |    0 |    0 |   15495 |   14926 |   15003 |   15003 |
| Операционный           | ОТОР                   | 0930070103 |    0 |    0 |   78875 |   77792 |   78148 |   78148 |
| Операционный           | ОТОР                   | 0930070126 |    0 |    0 |   14983 |   14719 |   14738 |   14738 |
| Операционный           | Служба_инкассации      | 0930070111 |    0 |    0 |   13673 |   13582 |   13602 |   13602 |
| Председателя_правления | АХО                    | 0930070092 |    0 |    0 |    4161 |    4098 |    4114 |    4114 |
| Председателя_правления | Бухгалтерия            | 0930070124 |    0 |    0 |   22623 |   22406 |   22437 |   22437 |
| Председателя_правления | Кадры                  | 0930070099 |    0 |    0 |    4518 |    4378 |    4394 |    4394 |
| Председателя_правления | Приёмная               | 0930070083 |    0 |    0 |   15283 |   15118 |   15178 |   15178 |
| Председателя_правления | Тренера                | 0930070109 |    0 |    0 |   20694 |   20578 |   20639 |   20639 |
| Председателя_правления | Юридический            | 0930070089 |    0 |    0 |   32454 |   32417 |   32435 |   32435 |
| Розничный_бизнес       | БПК                    | 0930070045 |    0 |    0 |  558866 |  558275 |  558396 |  558396 |
| Розничный_бизнес       | БПК                    | 0930070081 |    0 |    0 |   15455 |   15413 |   15416 |   15416 |
| Розничный_бизнес       | ККО_Академический      | 0930070075 |    0 |    0 |  234585 |  234204 |  234265 |  234265 |
| Розничный_бизнес       | ККО_Академический      | 0930070097 |    0 |    0 |   56696 |   55850 |   56180 |   56180 |
| Розничный_бизнес       | ККО_Академический      | 0930070119 |    0 |    0 |   80879 |   80769 |   80772 |   80772 |
| Розничный_бизнес       | ККО_Академический      | 0930070130 |    0 |    0 |   12244 |   11755 |   11910 |   11910 |
| Розничный_бизнес       | ККО_Академический      | 0930070131 |    0 |    0 |   31807 |   31339 |   31639 |   31639 |
| Розничный_бизнес       | ККО_Иртыш              | 0930070010 |    0 |    0 |   53623 |   53020 |   53111 |   53111 |
| Розничный_бизнес       | ККО_Иртыш              | 0930070087 |    0 |    0 |   13181 |   12904 |   12930 |   12930 |
| Розничный_бизнес       | ККО_Иртыш              | 0930070132 |    0 |    0 |   11608 |   11227 |   11350 |   11350 |
| Розничный_бизнес       | ККО_Иртыш              | 0930070133 |    0 |    0 |    8614 |    8258 |    8320 |    8320 |
| Розничный_бизнес       | ККО_Иртыш              | 0930070134 |    0 |    0 |   18175 |   17573 |   17675 |   17675 |
| Розничный_бизнес       | ККО_Омск-Парк_культуры | 0930070015 |    0 |    0 |   24550 |   24482 |   24487 |   24487 |
| Розничный_бизнес       | ККО_Омск-Парк_культуры | 0930070016 |    0 |    0 |   10919 |   10909 |   10919 |   10919 |
| Розничный_бизнес       | ККО_Омск-Парк_культуры | 0930070017 |    0 |    0 |   44370 |   44122 |   44194 |   44194 |
| Розничный_бизнес       | ККО_Омск-Парк_культуры | 0930070018 |    0 |    0 |   27399 |   27399 |   27399 |   27399 |
| Розничный_бизнес       | ККО_Омск-Парк_культуры | 0930070019 |    0 |    0 |  162095 |  161145 |  161341 |  161341 |
| Розничный_бизнес       | ККО_Омск-Парк_культуры | 0930070027 |    0 |    0 |  137939 |  137523 |  137612 |  137612 |
| Розничный_бизнес       | ККО_Омск-Тополиный     | 0930070022 |    0 |    0 |  371818 |  370816 |  371100 |  371100 |
| Розничный_бизнес       | ККО_Омск-Тополиный     | 0930070025 |    0 |    0 |   36233 |   36183 |   36214 |   36214 |
| Розничный_бизнес       | ККО_Омск-Тополиный     | 0930070026 |    0 |    0 |   90288 |   89916 |   89995 |   89995 |
| Розничный_бизнес       | ККО_Омск-Тополиный     | 0930070028 |    0 |    0 |  117671 |  117594 |  117607 |  117607 |
| Розничный_бизнес       | ККО_Омск-Тополиный     | 0930070138 |    0 |    0 |    3211 |    2656 |    2788 |    2788 |
| Розничный_бизнес       | ККО_Омск-Успенский     | 0930070002 |    0 |    0 |  281833 |  281356 |  281470 |  281470 |
| Розничный_бизнес       | ККО_Омск-Успенский     | 0930070005 |    0 |    0 |   55705 |   55548 |   55582 |   55582 |
| Розничный_бизнес       | ККО_Омск-Успенский     | 0930070094 |    0 |    0 |    4587 |    4548 |    4550 |    4550 |
| Розничный_бизнес       | ККО_Омск-Успенский     | 0930070095 |    0 |    0 |   29889 |   29607 |   29682 |   29682 |
| Розничный_бизнес       | ККО_Омск-Успенский     | 0930070100 |    0 |    0 |   13158 |   12976 |   13022 |   13022 |
| Розничный_бизнес       | ККО_Омск-Юбилейный     | 0930070030 |    0 |    0 |   84769 |   84564 |   84608 |   84608 |
| Розничный_бизнес       | ККО_Омск-Юбилейный     | 0930070082 |    0 |    0 |  114783 |  113489 |  113752 |  113752 |
| Розничный_бизнес       | ККО_Омск-Юбилейный     | 0930070091 |    0 |    0 |   35609 |   34963 |   35094 |   35094 |
| Розничный_бизнес       | ОРКК                   | 0930070012 |    0 |    0 |  558866 |  269967 |  269969 |  269969 |
| Розничный_бизнес       | ОРКК                   | 0930070014 |    0 |    0 |  203113 |  202548 |  202641 |  202641 |
| Розничный_бизнес       | ОРКК                   | 0930070085 |    0 |    0 |   89328 |   89028 |   89075 |   89075 |
| Розничный_бизнес       | ОРКК                   | 0930070088 |    0 |    0 |   40263 |   39903 |   39932 |   39932 |
| ЭБ                     | СЭБ                    | 0930070104 |    0 |    0 |   20107 |   19763 |   19836 |   19836 |
+------------------------+------------------------+------------+------+------+---------+---------+---------+---------+
66 rows in set (0.05 sec)
 

Неактивен

 

#9 24.02.2016 11:57:18

Tera2017
Завсегдатай
Зарегистрирован: 08.02.2016
Сообщений: 58

Re: Помогите с запросом

Только если интервал изменить на 3 дня, вроде работает, а может есть какой-то универсальный способ?

Неактивен

 

#10 24.02.2016 12:33:52

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Помогите с запросом

понял, тогда
where week(Dprint, 3) = week(now(), 3) - 1

Неактивен

 

#11 24.02.2016 12:59:40

Tera2017
Завсегдатай
Зарегистрирован: 08.02.2016
Сообщений: 58

Re: Помогите с запросом

Результат такой, не верно. Я хочу, чтобы в понедельник, были данные за понедельник, вторник за вторник... Текущей недели, последний день недели за который есть данные отнимался от первого, собирались данные всего это должно быть за текущую неделю. А эти данные за прошлую неделю.



mysql>   select Block, Unit, Xnumber, sum(if(DAYOFWEEK(Dprint)=2,`Count`,0)) as 'ПН', sum(if(DAYOFWEEK(Dprint)=3,`Count`,0)) as 'ВТ',
    -> sum(if(DAYOFWEEK(Dprint)=4,`Count`,0)) as 'СР',sum(if(DAYOFWEEK(Dprint)=5,`Count`,0)) as 'ЧТ',
    -> sum(if(DAYOFWEEK(Dprint)=6,`Count`,0)) as 'ПТ',(sum(if(DAYOFWEEK(Dprint)=6,`Count`,0)) - sum(if(DAYOFWEEK(Dprint)=2,`Count`,0))) as 'Всего' from print where week(Dprint, 3) = week(now(), 3) - 1
    -> group by Block,Unit,Xnumber;
+------------------------+------------------------+------------+------+------+------+---------+---------+---------+
| Block                  | Unit                   | Xnumber    | ПН   | ВТ   | СР   | ЧТ      | ПТ      | Всего   |
+------------------------+------------------------+------------+------+------+------+---------+---------+---------+
| ИТ                     | ОИТ                    | 0930070136 |    0 |    0 |    0 |    1495 |    1569 |    1569 |
| Корпоративный          | КИБ                    | 0930070125 |    0 |    0 |    0 |   21670 |   21698 |   21698 |
| Корпоративный          | Кредитный              | 0930070110 |    0 |    0 |    0 |   11554 |   11565 |   11565 |
| Корпоративный          | ООЮЛ                   | 0930070042 |    0 |    0 |    0 | 1480288 | 1480520 | 1480520 |
| Корпоративный          | ООЮЛ                   | 0930070065 |    0 |    0 |    0 |   66604 |   66633 |   66633 |
| Корпоративный          | ООЮЛ                   | 0930070114 |    0 |    0 |    0 |   71869 |   71905 |   71905 |
| Массовый_бизнес        | ДП_УМБ                 | 0930070032 |    0 |    0 |    0 |  162450 |  162576 |  162576 |
| Массовый_бизнес        | ДП_УМБ                 | 0930070038 |    0 |    0 |    0 |   72325 |   72327 |   72327 |
| Массовый_бизнес        | ДП_УМБ                 | 0930070106 |    0 |    0 |    0 |   90318 |   90526 |   90526 |
| Массовый_бизнес        | ДП_УМБ                 | 0930070107 |    0 |    0 |    0 |    2929 |    2955 |    2955 |
| Массовый_бизнес        | ДП_УМБ                 | 0930070123 |    0 |    0 |    0 |   38086 |   38187 |   38187 |
| Массовый_бизнес        | ОО_Волочаевский        | 0930070096 |    0 |    0 |    0 |   43975 |   44065 |   44065 |
| Массовый_бизнес        | ОО_Континентальный     | 0930070117 |    0 |    0 |    0 |  128645 |  128760 |  128760 |
| Массовый_бизнес        | ОО_Маршала_Жукова      | 0930070077 |    0 |    0 |    0 |  157757 |  157817 |  157817 |
| Массовый_бизнес        | ОО_Маршала_Жукова      | 0930070122 |    0 |    0 |    0 |   18332 |   18348 |   18348 |
| Массовый_бизнес        | ОО_Проспект_культуры   | 0930070090 |    0 |    0 |    0 |   20961 |   21012 |   21012 |
| Массовый_бизнес        | ОО_Проспект_культуры   | 0930070093 |    0 |    0 |    0 |   26968 |   27068 |   27068 |
| Массовый_бизнес        | ОО_Юность              | 0930070013 |    0 |    0 |    0 |   85020 |   85144 |   85144 |
| Операционный           | ГФМ                    | 0930070127 |    0 |    0 |    0 |   15296 |   15376 |   15376 |
| Операционный           | Касса                  | 0930070128 |    0 |    0 |    0 |   63558 |   63813 |   63813 |
| Операционный           | ОТОР                   | 0930070101 |    0 |    0 |    0 |   14926 |   15003 |   15003 |
| Операционный           | ОТОР                   | 0930070103 |    0 |    0 |    0 |   77792 |   78148 |   78148 |
| Операционный           | ОТОР                   | 0930070126 |    0 |    0 |    0 |   14719 |   14738 |   14738 |
| Операционный           | Служба_инкассации      | 0930070111 |    0 |    0 |    0 |   13582 |   13602 |   13602 |
| Председателя_правления | АХО                    | 0930070092 |    0 |    0 |    0 |    4098 |    4114 |    4114 |
| Председателя_правления | Бухгалтерия            | 0930070124 |    0 |    0 |    0 |   22406 |   22437 |   22437 |
| Председателя_правления | Кадры                  | 0930070099 |    0 |    0 |    0 |    4378 |    4394 |    4394 |
| Председателя_правления | Приёмная               | 0930070083 |    0 |    0 |    0 |   15118 |   15178 |   15178 |
| Председателя_правления | Тренера                | 0930070109 |    0 |    0 |    0 |   20578 |   20639 |   20639 |
| Председателя_правления | Юридический            | 0930070089 |    0 |    0 |    0 |   32417 |   32435 |   32435 |
| Розничный_бизнес       | БПК                    | 0930070045 |    0 |    0 |    0 |  558275 |  558396 |  558396 |
| Розничный_бизнес       | БПК                    | 0930070081 |    0 |    0 |    0 |   15413 |   15416 |   15416 |
| Розничный_бизнес       | ККО_Академический      | 0930070075 |    0 |    0 |    0 |  234204 |  234265 |  234265 |
| Розничный_бизнес       | ККО_Академический      | 0930070097 |    0 |    0 |    0 |   55850 |   56180 |   56180 |
| Розничный_бизнес       | ККО_Академический      | 0930070119 |    0 |    0 |    0 |   80769 |   80772 |   80772 |
| Розничный_бизнес       | ККО_Академический      | 0930070130 |    0 |    0 |    0 |   11755 |   11910 |   11910 |
| Розничный_бизнес       | ККО_Академический      | 0930070131 |    0 |    0 |    0 |   31339 |   31639 |   31639 |
| Розничный_бизнес       | ККО_Иртыш              | 0930070010 |    0 |    0 |    0 |   53020 |   53111 |   53111 |
| Розничный_бизнес       | ККО_Иртыш              | 0930070087 |    0 |    0 |    0 |   12904 |   12930 |   12930 |
| Розничный_бизнес       | ККО_Иртыш              | 0930070132 |    0 |    0 |    0 |   11227 |   11350 |   11350 |
| Розничный_бизнес       | ККО_Иртыш              | 0930070133 |    0 |    0 |    0 |    8258 |    8320 |    8320 |
| Розничный_бизнес       | ККО_Иртыш              | 0930070134 |    0 |    0 |    0 |   17573 |   17675 |   17675 |
| Розничный_бизнес       | ККО_Омск-Парк_культуры | 0930070015 |    0 |    0 |    0 |   24482 |   24487 |   24487 |
| Розничный_бизнес       | ККО_Омск-Парк_культуры | 0930070016 |    0 |    0 |    0 |   10909 |   10919 |   10919 |
| Розничный_бизнес       | ККО_Омск-Парк_культуры | 0930070017 |    0 |    0 |    0 |   44122 |   44194 |   44194 |
| Розничный_бизнес       | ККО_Омск-Парк_культуры | 0930070018 |    0 |    0 |    0 |   27399 |   27399 |   27399 |
| Розничный_бизнес       | ККО_Омск-Парк_культуры | 0930070019 |    0 |    0 |    0 |  161145 |  161341 |  161341 |
| Розничный_бизнес       | ККО_Омск-Парк_культуры | 0930070027 |    0 |    0 |    0 |  137523 |  137612 |  137612 |
| Розничный_бизнес       | ККО_Омск-Тополиный     | 0930070022 |    0 |    0 |    0 |  370816 |  371100 |  371100 |
| Розничный_бизнес       | ККО_Омск-Тополиный     | 0930070025 |    0 |    0 |    0 |   36183 |   36214 |   36214 |
| Розничный_бизнес       | ККО_Омск-Тополиный     | 0930070026 |    0 |    0 |    0 |   89916 |   89995 |   89995 |
| Розничный_бизнес       | ККО_Омск-Тополиный     | 0930070028 |    0 |    0 |    0 |  117594 |  117607 |  117607 |
| Розничный_бизнес       | ККО_Омск-Тополиный     | 0930070138 |    0 |    0 |    0 |    2656 |    2788 |    2788 |
| Розничный_бизнес       | ККО_Омск-Успенский     | 0930070002 |    0 |    0 |    0 |  281356 |  281470 |  281470 |
| Розничный_бизнес       | ККО_Омск-Успенский     | 0930070005 |    0 |    0 |    0 |   55548 |   55582 |   55582 |
| Розничный_бизнес       | ККО_Омск-Успенский     | 0930070094 |    0 |    0 |    0 |    4548 |    4550 |    4550 |
| Розничный_бизнес       | ККО_Омск-Успенский     | 0930070095 |    0 |    0 |    0 |   29607 |   29682 |   29682 |
| Розничный_бизнес       | ККО_Омск-Успенский     | 0930070100 |    0 |    0 |    0 |   12976 |   13022 |   13022 |
| Розничный_бизнес       | ККО_Омск-Юбилейный     | 0930070030 |    0 |    0 |    0 |   84564 |   84608 |   84608 |
| Розничный_бизнес       | ККО_Омск-Юбилейный     | 0930070082 |    0 |    0 |    0 |  113489 |  113752 |  113752 |
| Розничный_бизнес       | ККО_Омск-Юбилейный     | 0930070091 |    0 |    0 |    0 |   34963 |   35094 |   35094 |
| Розничный_бизнес       | ОРКК                   | 0930070012 |    0 |    0 |    0 |  269967 |  269969 |  269969 |
| Розничный_бизнес       | ОРКК                   | 0930070014 |    0 |    0 |    0 |  202548 |  202641 |  202641 |
| Розничный_бизнес       | ОРКК                   | 0930070085 |    0 |    0 |    0 |   89028 |   89075 |   89075 |
| Розничный_бизнес       | ОРКК                   | 0930070088 |    0 |    0 |    0 |   39903 |   39932 |   39932 |
| ЭБ                     | СЭБ                    | 0930070104 |    0 |    0 |    0 |   19763 |   19836 |   19836 |
+------------------------+------------------------+------------+------+------+------+---------+---------+---------+
66 rows in set (0.02 sec)

mysql>
 

Отредактированно Tera2017 (24.02.2016 13:10:18)

Неактивен

 

#12 24.02.2016 13:01:13

Tera2017
Завсегдатай
Зарегистрирован: 08.02.2016
Сообщений: 58

Re: Помогите с запросом

Вот это хочу получать 24.02.2016-26.02.2016. Если данные появятся в пятницу значит от пятницы отнять младшую дату т.е на этой неделе среду, на др. неделе это может быть, понедельник, или вторник, либо вообще четверг. Такое вообще возможно реализовать на sql


+------------------------+------------------------+------------+------+------+---------+---------+---------+---------+
| Block                  | Unit                   | Xnumber    | ПН   | ВТ   | СР      | ЧТ      | ПТ      | Всего   |
+------------------------+------------------------+------------+------+------+---------+---------+---------+---------+
| ИТ                     | ОИТ                    | 0930070136 |    0 |    0 |    1775 |    0 |    0 |    0 |1775
| Корпоративный          | КИБ                    | 0930070125 |    0 |    0 |   4578 |   0 |   0 |   0 |4578
| Корпоративный          | Кредитный              | 0930070110 |    0 |    0 |   11592 |   11600 |   0 |   8 |
| Корпоративный          | ООЮЛ                   | 0930070042 |    0 |    0 | 1481395 | 1481399 | 0 | 4 |

 

Отредактированно Tera2017 (24.02.2016 13:07:46)

Неактивен

 

#13 24.02.2016 13:09:36

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Помогите с запросом

что-то я указал за прошлую неделю.
за текущую будет так:
where week(Dprint, 3) = week(now(), 3)

Неактивен

 

#14 24.02.2016 13:20:01

Tera2017
Завсегдатай
Зарегистрирован: 08.02.2016
Сообщений: 58

Re: Помогите с запросом

Данный запрос не универсален, т.к по идеи должен выводить данные за Среду поля Dprint а если рабочая неделя будет начинаться с др дня недели то придется менять постоянно, да еще и в сумма то же менять. Значит нет универсального способа?

Неактивен

 

#15 24.02.2016 13:25:11

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Помогите с запросом

данный запрос выведет данные за текущую неделю с понедельника по воскресенье, т.к. первые дни были выходные то данных за них нет соответственно в эти дни будет 0

Неактивен

 

#16 24.02.2016 13:53:58

Tera2017
Завсегдатай
Зарегистрирован: 08.02.2016
Сообщений: 58

Re: Помогите с запросом

А по вычислениям общего значения?

Неактивен

 

#17 24.02.2016 14:10:02

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Помогите с запросом

максимальный за неделю - минимальный?

GREATEST(понед, вторник, .. пятница) - LEAST(...) as `всего`;
вместо понед - sum(if(DAYOFWEEK(Dprint)=2,`Count`,0)) и т.д.

Неактивен

 

#18 24.02.2016 14:39:02

Tera2017
Завсегдатай
Зарегистрирован: 08.02.2016
Сообщений: 58

Re: Помогите с запросом

простое вычисление от крайнего дня за неделю (Пятница, либо др последний день рабочий в недели отнимается значение первого дня в недели где есть данные (Понедельник, либо как на этой недели Среда) и записывается в поле Всего напечатано

Неактивен

 

#19 25.02.2016 09:36:29

Tera2017
Завсегдатай
Зарегистрирован: 08.02.2016
Сообщений: 58

Re: Помогите с запросом

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

Неактивен

 

#20 25.02.2016 09:46:12

Tera2017
Завсегдатай
Зарегистрирован: 08.02.2016
Сообщений: 58

Re: Помогите с запросом

select Block, Unit, Xnumber, Model,sum(if(DAYOFWEEK(Dprint)=2,`Count`,0)) as 'ПН', sum(if(DAYOFWEEK(Dprint)=3,`Count`,0)) as 'ВТ',
sum(if(DAYOFWEEK(Dprint)=4,`Count`,0)) as 'СР',sum(if(DAYOFWEEK(Dprint)=5,`Count`,0)) as 'ЧТ',
sum(if(DAYOFWEEK(Dprint)=6,`Count`,0)) as 'ПТ', GREATEST(ПН,ВТ,СР,ЧТ,ПТ) - LEAST(ПН,ВТ,СР,ЧТ,ПТ) as `Всего`from print where week(Dprint, 3) = week(now(), 3)
group by Block,Unit,Xnumber;

Неактивен

 

#21 25.02.2016 10:13:47

Tera2017
Завсегдатай
Зарегистрирован: 08.02.2016
Сообщений: 58

Re: Помогите с запросом

Ошибка

Неактивен

 

#22 25.02.2016 11:24:38

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Помогите с запросом

ПН,ВТ,СР,ЧТ,ПТ  это для иллюстрации, вместо них нужно использовать соответствующие выражения типа sum(if(DAYOFWEEK(Dprint)=2,`Count`,0))

при поиске минимального нужно не учитывать нули.
можно заменять и на заведомо большое число, например, 1000000
if(sum(if(DAYOFWEEK(Dprint)=2,`Count`,0))=0, 1000000, sum(if(DAYOFWEEK(Dprint)=2,`Count`,0)))

целиком писать не будуsmile

Неактивен

 

#23 25.02.2016 12:04:22

Tera2017
Завсегдатай
Зарегистрирован: 08.02.2016
Сообщений: 58

Re: Помогите с запросом

GREATEST(if(sum(if(DAYOFWEEK(Dprint)=2,`Count`,0))=0) AS ПН
Все верно?

Неактивен

 

#24 25.02.2016 12:11:04

Tera2017
Завсегдатай
Зарегистрирован: 08.02.2016
Сообщений: 58

Re: Помогите с запросом

GREATEST(if(sum(if(DAYOFWEEK(Dprint)=2,`Count`,0))=0), if(sum(if(DAYOFWEEK(Dprint)=3,`Count`,0))=0),if(sum(if(DAYOFWEEK(Dprint)=4,`Count`,0))=0),if(sum(if(DAYOFWEEK(Dprint)=5,`Count`,0))=0),if(sum(if(DAYOFWEEK(Dprint)=6,`Count`,0))=0))-LEAST(if(sum(if(DAYOFWEEK(Dprint)=2,`Count`,0))=10000), if(sum(if(DAYOFWEEK(Dprint)=3,`Count`,0))=1000000),if(sum(if(DAYOFWEEK(Dprint)=4,`Count`,0))=10000000),if(sum(if(DAYOFWEEK(Dprint)=5,`Count`,0))=1000000),if(sum(if(DAYOFWEEK(Dprint)=6,`Count`,1000000))=0)) AS `Всего`;

Все верно?

Неактивен

 

#25 25.02.2016 12:13:40

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Помогите с запросом

GREATEST(sum(if(DAYOFWEEK(Dprint)=2,`Count`,0)), ВТ,СР,ЧТ,ПТ)
- LEAST(if(sum(if(DAYOFWEEK(Dprint)=2,`Count`,0))=0, 1000000, sum(if(DAYOFWEEK(Dprint)=2,`Count`,0))), ВТ,СР,ЧТ,ПТ)

аналогично для ВТ,СР,ЧТ,ПТ

Неактивен

 

Board footer

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