В желаемом наборе результатов столбцы имеют вид
monthname 2017 year(amount) 2018 year(amount)
Но в предложении AS, которое квалифицирует результат вызова crosstab (), вы добавили это, что, по-видимому, соответствует вашему неповоротномустолбцы:
as ct ("TOTAL_AMOUNT" numeric,"monthnumber" double precision,"monthname" double precision)
Это неверно, поскольку в предложении AS должны точно указываться столбцы с поворотным выводом.Похоже, что вы не поняли этот аспект crosstab()
, так как вы поместили столбцы непотвращенного вывода.
Столбцы в запросе, переданные в качестве первого аргумента кросс-таблицы, также не совпадают.Первый столбец должен содержать название месяца, второй столбец - год, а третий столбец - сумму.Наконец, вам нужно ограничить количество лет теми, которые жестко заданы в вашем предложении AS.