W ten sposób rozwiązałem problem
Begin
execute 'select count(*) from ' ||tablename||
' where cast(date_dimension_year || ''-'' || date_dimension_month || ''-''||date_dimension_day as date)
not between (current_date - interval ''13 months'') and current_date' into total ;
Musiałem przypisać sumę całkowitą pod koniec i prawidłowe zamknięcie cytatu (') zadziałało dla mnie. (Właśnie wkleiłem część funkcji, w której otrzymywałem problem)
Dziękuję za wszelką pomoc.