Mysql - рассчитать раз в месяц - организовать результат - PullRequest
0 голосов
/ 09 марта 2020

Я извлекаю данные из sql следующим SQL Запросом

SELECT DISTINCT
  SEC_TO_TIME(SUM(TIME_TO_SEC(transics_bco.arab))) AS arab,
  transics_bco.plate
FROM transics_bco
WHERE transics_bco.extdate BETWEEN '2019-12-01' AND '2019-12-31'
GROUP BY transics_bco.plate

Это дает мне следующий результат:

-----------------------
| ARAB      | Plate   |
-----------------------
| 178:44:43 | 1ABC123 |
| 156:23:44 | 1DEF456 |
-----------------------

Можно ли получить результат показан так:

---------------------------------------------------------------
| Plate   | December 19 | January 20 | February 20 | March 20 |
--------------------------------------------------------------- 
| 1ABC123 | 178:44:43   | 120:34:56  | ...         | ...      |
| 1DEF456 | 156:23:44   | 102:34:54  | ...         | ...      |
| 1GHI789 | 111:22:33   | 156:35:35  | ...         | ...      |
---------------------------------------------------------------

SQL Образец: transics_bco

----------------------------------------
| id | plate   | arab     | extdate    |
----------------------------------------
| 1  | 1ABC123 | 00:14:23 | 2019-12-01 |
| 2  | 1ABC123 | 00:10:20 | 2019-12-03 |
| 3  | 1ABC123 | 00:45:06 | 2019-12-07 |
| 4  | 1ABC123 | 00:54:45 | 2020-01-02 |
| 5  | 1ABC123 | 00:26:10 | 2020-01-03 |
| 6  | 1ABC123 | 00:43:28 | 2020-01-04 |
----------------------------------------

Очень хотелось бы получить указатели в хорошем направлении


Добавление дб опишите, как требуется в комментариях;

- Добавление описания Transics_bco в соответствии с запросом в комментариях

===================================================================================================================================================================================================================================================================================================================
|                      Field                       |                       Type                       |                       Null                       |                       Key                        |                     Default                      |                      Extra                       |
===================================================================================================================================================================================================================================================================================================================
|                        id                        |                     int(11)                      |                        NO                        |                       PRI                        |                       null                       |                  auto_increment                  |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                      plate                       |                   varchar(255)                   |                        NO                        |                                                  |                       null                       |                                                  |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                       arab                       |                       time                       |                        NO                        |                                                  |                     00:00:00                     |                                                  |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                     extdate                      |                       date                       |                        NO                        |                                                  |                       null                       |                                                  |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1 Ответ

0 голосов
/ 09 марта 2020

ВЫБРАТЬ табличку, 19 декабря, 20 января, 20 февраля, 20 марта

ОТ (

ВЫБРАТЬ ЗНАЧЕНИЕ

a.plate, (ПРИМЕР ЗА МЕСЯЦЕМ (a.extDate) = 12 AND YEAR (a.extDate) = 2019

THEN SEC_TO_TIME (SUM (TIME_TO_SE C (a.arab))) END) AS 'December19', (ПРИМЕР ЗА МЕСЯЦЕМ (a.extDate) = 1 И

ГОД (a.extDate) = 2020

THEN a.arab END) AS '20 января

(ПРИМЕР ЗА МЕСЯЦЕМ (a.extDate) = 2 И ГОД ( a. = 3 И ГОД (a.extDate) = 2020

THEN SEC_TO_TIME (SUM (TIME_TO_SE C (a.arab))) END) AS 'March20',

FROM transics_bco a

WHERE transics_bco.extdate МЕЖДУ '2019-12-01' И '2019-12-31'

GROUP BY transics_bco.plate) T

GROUP BY T.plate;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...