SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#26 15.03.2016 07:55:17

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

Re: Подскажите как написать запрос

Подскажите хочу получить сумму печати по все принтерам, считает сумму только по одному принтеру. Если несколько то не верно считает.


mysql> SELECT t1.Unit AS 'Подразделение',sum(t1.`Count`) - sum(t2.`Count`) AS 'Итого'
    -> FROM print AS t1, print AS t2
    -> WHERE t1.Unit = t2.Unit and  t1.Dprint = '2016-03-11' AND t2.Dprint = '2016-02-18'
    -> GROUP BY t1.Block,t1.Unit;
+------------------------+----------+
| Подразделение          | Итого    |
+------------------------+----------+
| ОИТ                    |      507 |
| КИБ                    |     2039 |
| Кредитный              |      983 |
| ООЮЛ                   | -4136667 |
| ДП_УМБ                 |    46135 |
| ОО_Волочаевский        |     2260 |
| ОО_Континентальный     |     2615 |
| ОО_Маршала_Жукова      |     5974 |
| ОО_Проспект_культуры   |     4366 |
| ОО_Юность              |     1727 |
| ГФМ                    |     1380 |
| Касса                  |     5998 |
| ОТОР                   |    29262 |
| Служба_инкассации      |      298 |
| АХО                    |      196 |
| Бухгалтерия            |     1965 |
| Кадры                  |      560 |
| Приёмная               |      620 |
| Тренера                |     1451 |
| Юридический            |      254 |
| БПК                    |     9536 |
| ККО_Академический      |    49200 |
| ККО_Иртыш              |    52280 |
| ККО_Омск-Парк_культуры |    59658 |
| ККО_Омск-Тополиный     |    62280 |
| ККО_Омск-Успенский     |    30135 |
| ККО_Омск-Юбилейный     |    32058 |
| ОРКК                   |    34888 |
| СЭБ                    |     1395 |
+------------------------+----------+
29 rows in set (0.01 sec)
 

Неактивен

 

#27 15.03.2016 07:56:39

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

Re: Подскажите как написать запрос


mysql> SELECT t1.Block AS 'Блок',t1.Unit AS 'Подразделение',t1.Xnumber AS 'Номер Xerox',t1.Model AS 'Модель',t1.SNumber AS 'Серийный номер',SUM(t1.`Count`) - SUM(t2.`Count`) AS 'Итого'
    -> FROM print AS t1, print AS t2
    -> WHERE t1.Block = t2.Block and t1.Unit = t2.Unit and t1.Xnumber=t2.Xnumber and t1.Model=t2.Model and t1.Snumber = t2.Snumber AND t1.Dprint = '2016-03-11' AND t2.Dprint = '2016-02-18'
    -> GROUP BY t1.Block,t1.Unit,t1.Xnumber;
+------------------------+------------------------+-------------+--------------------------+----------------+-------+
| Блок                   | Подразделение          | Номер Xerox | Модель                   | Серийный номер | Итого |
+------------------------+------------------------+-------------+--------------------------+----------------+-------+
| ИТ                     | ОИТ                    | 0930070136  | Xerox_WorkCentre_6505_DN | 3188387003     |   507 |
| Корпоративный          | КИБ                    | 0930070125  | Xerox_WorkCentre_3325    | 3259926474     |  2039 |
| Корпоративный          | Кредитный              | 0930070110  | Xerox_WorkCentre_3315    | 3972680779     |   983 |
| Корпоративный          | ООЮЛ                   | 0930070065  | HP_LaserJet_M2727nf      | CNHTC3POPS     |   509 |
| Корпоративный          | ООЮЛ                   | 0930070114  | Xerox_WorkCentre_3615    | 3152361342     |  1122 |
| Массовый_бизнес        | ДП_УМБ                 | 0930070032  | Xerox_WorkCentre_3550    | 3257015679     |  1604 |
| Массовый_бизнес        | ДП_УМБ                 | 0930070038  | HP_LaserJet_3052n        | CNSKM73338     |   345 |
| Массовый_бизнес        | ДП_УМБ                 | 0930070106  | Xerox_WorkCentre_3615    | 3152429907     |  4894 |
| Массовый_бизнес        | ДП_УМБ                 | 0930070107  | Xerox_Phaser_6600DN      | 3184752270     |   471 |
| Массовый_бизнес        | ДП_УМБ                 | 0930070123  | Xerox_WorkCentre_3325    | 3259911663     |  1913 |
| Массовый_бизнес        | ОО_Волочаевский        | 0930070096  | Xerox_WorkCentre_3615    | 3152430573     |  2260 |
| Массовый_бизнес        | ОО_Континентальный     | 0930070117  | Xerox_WorkCentre_3315    | 3972576629     |  2615 |
| Массовый_бизнес        | ОО_Маршала_Жукова      | 0930070077  | HP_LaserJet_M1536dnf     | CNB9BCHBY7     |  1691 |
| Массовый_бизнес        | ОО_Маршала_Жукова      | 0930070122  | Xerox_WorkCentre_3325    | 3259911728     |  1296 |
| Массовый_бизнес        | ОО_Проспект_культуры   | 0930070090  | Xerox_WorkCentre_3325    | 3259897652     |   888 |
| Массовый_бизнес        | ОО_Проспект_культуры   | 0930070093  | Xerox_WorkCentre_3325    | 3259897792     |  1295 |
| Массовый_бизнес        | ОО_Юность              | 0930070013  | Xerox_WorkCentre_3550    | 3248052510     |  1727 |
| Операционный           | ГФМ                    | 0930070127  | Xerox_WorkCentre_3325    | 3259926857     |  1380 |
| Операционный           | Касса                  | 0930070128  | Xerox_WorkCentre_3325    | 3259926733     |  5998 |
| Операционный           | ОТОР                   | 0930070101  | Xerox_WorkCentre_3615    | 3152413938     |  1573 |
| Операционный           | ОТОР                   | 0930070103  | Xerox_Phaser_4622        | 3226832130     |  4895 |
| Операционный           | ОТОР                   | 0930070126  | Xerox_WorkCentre_3325    | 3259926997     |  3286 |
| Операционный           | Служба_инкассации      | 0930070111  | Xerox_WorkCentre_3220    | 3248325452     |   298 |
| Председателя_правления | АХО                    | 0930070092  | Xerox_WorkCentre_3325    | 3259897750     |   196 |
| Председателя_правления | Бухгалтерия            | 0930070124  | Xerox_WorkCentre_3325    | 3259926962     |  1965 |
| Председателя_правления | Кадры                  | 0930070099  | Xerox_WorkCentre_3315    | 3972612331     |   560 |
| Председателя_правления | Приёмная               | 0930070083  | Xerox_WorkCentre_3315    | 3972680124     |   620 |
| Председателя_правления | Тренера                | 0930070109  | Xerox_WorkCentre_3325    | 3259911485     |  1451 |
| Председателя_правления | Юридический            | 0930070089  | Xerox_WorkCentre_3325    | 3259897628     |   254 |
| Розничный_бизнес       | БПК                    | 0930070045  | HP_LaserJet_P4015n       | CNFY828026     |  4115 |
| Розничный_бизнес       | БПК                    | 0930070081  | Xerox_WorkCentre_3615    | 3152429915     |   653 |
| Розничный_бизнес       | ККО_Академический      | 0930070075  | HP_LaserJet_3052n        | CNSKM73353     |  1526 |
| Розничный_бизнес       | ККО_Академический      | 0930070097  | Xerox_Phaser_3610        | 3150872978     |  4558 |
| Розничный_бизнес       | ККО_Академический      | 0930070119  | Xerox_WorkCentre_3220    | 3221862944     |   276 |
| Розничный_бизнес       | ККО_Академический      | 0930070130  | Xerox_WorkCentre_3325    | 3259944090     |  1854 |
| Розничный_бизнес       | ККО_Академический      | 0930070131  | Xerox_WorkCentre_3325    | 3259926938     |  1626 |
| Розничный_бизнес       | ККО_Иртыш              | 0930070010  | Xerox_WorkCentre_3315    | 3972489360     |  2784 |
| Розничный_бизнес       | ККО_Иртыш              | 0930070087  | Xerox_WorkCentre_3325    | 3259897334     |   850 |
| Розничный_бизнес       | ККО_Иртыш              | 0930070132  | Xerox_Phaser_3320        | 3382289780     |  2028 |
| Розничный_бизнес       | ККО_Иртыш              | 0930070133  | Xerox_Phaser_3320        | 3382289985     |  1451 |
| Розничный_бизнес       | ККО_Иртыш              | 0930070134  | Xerox_Phaser_3320        | 3382290282     |  3343 |
| Розничный_бизнес       | ККО_Омск-Парк_культуры | 0930070015  | Xerox_WorkCentre_3220    | 3248247079     |   691 |
| Розничный_бизнес       | ККО_Омск-Парк_культуры | 0930070016  | Xerox_Phaser_3250        | 3980851221     |    47 |
| Розничный_бизнес       | ККО_Омск-Парк_культуры | 0930070017  | Xerox_WorkCentre_3315    | 3972489718     |  1183 |
| Розничный_бизнес       | ККО_Омск-Парк_культуры | 0930070018  | Xerox_Phaser_3250        | 3980851159     |   240 |
| Розничный_бизнес       | ККО_Омск-Парк_культуры | 0930070019  | Xerox_Phaser_3600DN      | 3249483469     |  4390 |
| Розничный_бизнес       | ККО_Омск-Парк_культуры | 0930070027  | Xerox_WorkCentre_3550    | 3248052480     |  3392 |
| Розничный_бизнес       | ККО_Омск-Тополиный     | 0930070022  | HP_LaserJet_600_M602x    | CNBVDB9037     |  6844 |
| Розничный_бизнес       | ККО_Омск-Тополиный     | 0930070025  | HP_LaserJet_M1536dnf_MFP | CNC9CDVBQK     |   493 |
| Розничный_бизнес       | ККО_Омск-Тополиный     | 0930070026  | HP_LaserJet_M1536dnf_MFP | CNC9CDNB11     |  1739 |
| Розничный_бизнес       | ККО_Омск-Тополиный     | 0930070028  | HP_LaserJet_M1536dnf_MFP | CNC9CDVBQH     |   370 |
| Розничный_бизнес       | ККО_Омск-Тополиный     | 0930070138  | Xerox_WorkCentre_3325    | 3259959348     |  3010 |
| Розничный_бизнес       | ККО_Омск-Успенский     | 0930070002  | Xerox_WorkCentre_3550    | 3257035165     |  2957 |
| Розничный_бизнес       | ККО_Омск-Успенский     | 0930070005  | HP_LaserJet_M1536dnf_MFP | CNC9CDTCVV     |   560 |
| Розничный_бизнес       | ККО_Омск-Успенский     | 0930070094  | Xerox_WorkCentre_3325    | 3259897512     |   131 |
| Розничный_бизнес       | ККО_Омск-Успенский     | 0930070095  | Xerox_WorkCentre_3325    | 3259897881     |  1485 |
| Розничный_бизнес       | ККО_Омск-Успенский     | 0930070100  | Xerox_Phaser_3610        | 3150953129     |   894 |
| Розничный_бизнес       | ККО_Омск-Юбилейный     | 0930070030  | HP_LaserJet_3052n        | CNCK389146     |   905 |
| Розничный_бизнес       | ККО_Омск-Юбилейный     | 0930070082  | Xerox_WorkCentre_3615    | 3152429893     |  6581 |
| Розничный_бизнес       | ККО_Омск-Юбилейный     | 0930070091  | Xerox_WorkCentre_3325    | 3259897725     |  3200 |
| Розничный_бизнес       | ОРКК                   | 0930070012  | Xerox_WorkCentre_3550    | 3248027915     |   879 |
| Розничный_бизнес       | ОРКК                   | 0930070014  | Xerox_WorkCentre_3550    | 3248027931     |  3099 |
| Розничный_бизнес       | ОРКК                   | 0930070085  | Xerox_WorkCentre_4260    | 3249772517     |  3678 |
| Розничный_бизнес       | ОРКК                   | 0930070088  | Xerox_WorkCentre_3325    | 3259897342     |  1066 |
| ЭБ                     | СЭБ                    | 0930070104  | Xerox_WorkCentre_3615    | 3152429931     |  1395 |
+------------------------+------------------------+-------------+--------------------------+----------------+-------+
65 rows in set (0.01 sec)

mysql>

 

Неактивен

 

#28 15.03.2016 07:57:25

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

Re: Подскажите как написать запрос

А по подразделениям не суммирует принтера либо считает вообще не точ-то нужно

Неактивен

 

#29 15.03.2016 19:14:14

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

Re: Подскажите как написать запрос

правильно ли я понимаю что запрос из http://sqlinfo.ru/forum/viewtopic.php?pid=42732#p42732 считает верно сумму по каждому принтеру, а вы хотите сумму по подразделению?

если да, то

select `Подразделение`, sum(`Итого`) from (
SELECT t1.Block AS 'Блок',t1.Unit AS 'Подразделение',t1.Xnumber AS 'Номер Xerox',t1.Model AS 'Модель',t1.SNumber AS 'Серийный номер',SUM(t1.`Count`) - SUM(t2.`Count`) AS 'Итого'
    -> FROM print AS t1, print AS t2
    -> WHERE t1.Block = t2.Block and t1.Unit = t2.Unit and t1.Xnumber=t2.Xnumber and t1.Model=t2.Model and t1.Snumber = t2.Snumber AND t1.Dprint = '2016-03-11' AND t2.Dprint = '2016-02-18'
    -> GROUP BY t1.Block,t1.Unit,t1.Xnumber) x
group by 1;

Неактивен

 

#30 15.03.2016 19:32:09

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

Re: Подскажите как написать запрос

Подскажите а как вообще посчитать общую сумму печати по всем принтера с такой-то даты по такую?

Неактивен

 

#31 15.03.2016 19:35:00

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

Re: Подскажите как написать запрос

Объясните пожалуйста вот эту конструкцию. Что это за "x group by 1"
GROUP BY t1.Block,t1.Unit,t1.Xnumber) x
group by 1;

Неактивен

 

#32 15.03.2016 19:46:23

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

Re: Подскажите как написать запрос

1 это значит по первому полю в части select, т.е.
group by `Подразделение`

Неактивен

 

#33 15.03.2016 19:46:50

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

Re: Подскажите как написать запрос

Tera2017 написал:

Подскажите а как вообще посчитать общую сумму печати по всем принтера с такой-то даты по такую?

просто sum без всяких группировок

Неактивен

 

#34 15.03.2016 20:08:06

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

Re: Подскажите как написать запрос

Так:



select sum(`Итого`) from (
SELECT t1.Block AS 'Блок',t1.Unit AS 'Подразделение',t1.Xnumber AS 'Номер Xerox',t1.Model AS 'Модель',t1.SNumber AS 'Серийный номер',SUM(t1.`Count`) - SUM(t2.`Count`) AS 'Итого'
FROM print AS t1, print AS t2
WHERE t1.Block = t2.Block and t1.Unit = t2.Unit and t1.Xnumber=t2.Xnumber and t1.Model=t2.Model
and t1.Snumber = t2.Snumber AND t1.Dprint = '2016-03-11' AND t2.Dprint = '2016-02-18'
 

Неактивен

 

#35 15.03.2016 20:09:03

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

Re: Подскажите как написать запрос

Все верное? Итог должен быть Поле сумма: Такое-то. Все верно написал?

Неактивен

 

#36 15.03.2016 22:44:23

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

Re: Подскажите как написать запрос

только практика - критерий истины
вы можете выполнить запрос и узнать верный он или нет

Неактивен

 

#37 16.03.2016 13:31:57

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

Re: Подскажите как написать запрос

попробовал получить общую сумму получаю ошибку:


mysql> select sum(`Итого`) AS 'Итого:' from (SELECT SUM(t1.`Count`) - SUM(t2.`Count`) AS 'Итого' FROM print AS t1, print AS t2 WHERE t1.Dprint = '2016-03-11' AND t2.Dprint = '2016-02
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '
' at line 1
mysql>


Неактивен

 

#38 16.03.2016 13:32:43

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

Re: Подскажите как написать запрос


select sum(`Итого`) AS 'Итого:' from (SELECT SUM(t1.`Count`) - SUM(t2.`Count`) AS 'Итого' FROM print AS t1, print AS t2 WHERE t1.Dprint = '2016-03-11' AND t2.Dprint = '2016-02-18';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
 

Неактивен

 

#39 16.03.2016 22:31:21

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

Re: Подскажите как написать запрос

забыли закрывающую скобку

select sum(`Итого`) AS 'Итого:' from (SELECT SUM(t1.`Count`) - SUM(t2.`Count`) AS 'Итого' FROM print AS t1, print AS t2 WHERE t1.Dprint = '2016-03-11' AND t2.Dprint = '2016-02-18' ) x;


но этот запрос очевидно не верен
для наглядности рекомендую упрощать запрос и смотреть на промежуточные результаты
SELECT * FROM print AS t1, print AS t2;
SELECT * FROM print AS t1, print AS t2 WHERE t1.Dprint = '2016-03-11' AND t2.Dprint = '2016-02-18';
SELECT SUM(t1.`Count`), SUM(t2.`Count`) FROM print AS t1, print AS t2 WHERE t1.Dprint = '2016-03-11' AND t2.Dprint = '2016-02-18' ;

Неактивен

 

Board footer

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