oleja1ee7
@oleja1ee7

Как составить такой запрос в временной таблице?

Как из такой таблицы
5c1328ab8dcea540826701.png

Вроде как я понимаю, что нужно объединять по имени и годам. а вот в высчитывании суммы и разницы между текущим и предыдущим годом возникают проблемы.

--------------------------------------------
UPD1
сделал пока что так:
SELECT sudovlad, summa, years, (Sum(summa*100)/summa2) AS percent, summa2, years2 FROM (SELECT sudovlad, Sum(gruz_pass) AS summa, year(data_vih_p_ot) AS years, (Sum(gruz_pass)*100)/Sum(gruz_pass) AS percent, year(data_vih_p_ot) AS years2, Sum(gruz_pass) AS summa2 FROM pool_management.ships WHERE sudovlad = 'pere' GROUP by year(data_vih_p_ot) ) reservtable
WHERE years=2018


получилось так
5c15575d076a2178660818.png

Но необходимо чтобы в поле years2 было 2017, а в поле summ2 сумма значений за 2017й год
  • Вопрос задан
  • 92 просмотра
Пригласить эксперта
Ответы на вопрос 1
@ponaehal
Сей процесс называется транспонированием (см. тут). Делается он либо выражениями PIVOT/UNPIVOT, либо построением запроса типа
select group_concat(if(v='a', c, null)) a, 
       group_concat(if(v='b', c, null)) b, 
       group_concat(if(v='c', c, null)) c
  from (select value v, Count(value) c
          from t1
        group by value ) temp

Ну может еще как то можно...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы