Я не вижу строки 'Русфлот, ООО' 0 2018 0 0 2017 во втором выводе
Я вижу 'Русфлот, ООО' 0 2017 0 0 2017 во втором выводе
Может поэтому при первом запросе и не возвращает эту строку?
Причина в
GROUP BY EXTRACT(YEAR FROM data_vih_p_ot)
Ты делаешь в первом подзапросе group by по году и он возвращает
Русфлот, ООО 0 2017
АрктикТранс ОИЛ, ООО 0 2018
Есть такой вариант запроса, не знаю подойдет ли
SELECT
reservtable.sudovlad,
reservtable.summa,
reservtable.years,
((reservtable2.summa2 - reservtable.summa) / reservtable.summa * 100) AS percent,
reservtable2.summa2,
reservtable2.years2
FROM(
SELECT sudovlad,gruz_pass as summa,EXTRACT(YEAR FROM data_vih_p_ot) AS years
FROM ships
WHERE EXTRACT(YEAR FROM data_vih_p_ot) = 2017 AND sudovlad IN ('Русфлот, ООО', 'АрктикТранс ОИЛ, ООО')
GROUP BY sudovlad) reservtable,
(SELECT sudovlad,gruz_pass as summa2,EXTRACT(YEAR FROM data_vih_p_ot) AS years2
FROM ships
WHERE EXTRACT(YEAR FROM data_vih_p_ot) = 2018 AND sudovlad IN ('Русфлот, ООО', 'АрктикТранс ОИЛ, ООО')
GROUP BY sudovlad) reservtable2
GROUP BY sudovlad