В исходном примере у вас есть два столбца, которые возвращаются во внешний запрос внутренним, это может сработать, если вы откроете один из них и оставите другой в подзапросе.Я не уверен, как это будет продолжаться с тем отдельным предложением, которое вы используете.
SELECT distinct
t1.country,
t1.manufacturer,
t1.category,
t1.month,
t1.year,
SUM(CASE WHEN year = t1.year THEN value END) AS Company_TY,
(SELECT SUM(CASE WHEN year = t1.year -1 THEN value END) AS company_LY
FROM data
WHERE mar_short_desc = t1.mar_short_desc
AND category = t1.category
AND manufacturer = t1.manufacturer
AND month = t1.month
)
FROM data t1
) a
Попробуйте также выполнить приведенный ниже запрос, он использует GROUP BY и производные таблицы, которые более эффективны.
select Data1.country
, Data1.manufacturer
, Data1.category
, Data1.month
, Data1.year
, Data1.Total
, Data2.Total
from (SELECT t1.country,
t1.manufacturer,
t1.category,
t1.month,
t1.year,
SUM(value) 'Total'
from data
group by t1.country,
t1.manufacturer,
t1.category,
t1.month,
t1.year) Data1
inner join (SELECT country,
manufacturer,
category,
month,
year,
SUM(value) 'Total'
from data
group by country,
manufacturer,
category,
month,
year) Data2 on Data2.country = Data1.country
and Data2.manufacturer = Data1.manufacturer
and Data2.category = Data1.category
and Data2.month = Data1.month
and Data2.year = Data1.year -1