Hi All,
I have created a PLSQL function returning classic report which is a pivot report using below query:
DECLARE
l_pivot_cols VARCHAR2(4000);
l_pivot_qry VARCHAR2(4000);
BEGIN
SELECT ''''||listagg(MONTH_YEAR, ''',''') within group(order by MONTH_YEAR)||''''
INTO l_pivot_cols from
(
SELECT TO_CHAR(TO_DATE(DC_DATE, 'DD-MM-YYYY HH24:MI:SS'),'MON-YYYY') MONTH_YEAR
FROM dc_cats_data_2019
WHERE DC_NETWORK= 'BC000248P01E'--:P8_PROJECT_CODE
GROUP BY TO_CHAR(TO_DATE(DC_DATE, 'DD-MM-YYYY HH24:MI:SS'),'MON-YYYY')
);
l_pivot_qry :=
'select * from ( '
|| 'select
SUM(DC_HOURS) DC_HOURS,
DC_ACTIVITY,TO_CHAR(TO_DATE(DC_DATE,''DD-MM-YYYY HH24:MI:SS''),''MON-YYYY'') MON_YEAR
FROM dc_cats_data_2019'
||' WHERE DC_NETWORK ='''
|| :P8_PROJECT_CODE
|| ''''
||'GROUP BY TO_CHAR(TO_DATE(DC_DATE,''DD-MM-YYYY HH24:MI:SS''),''MON-YYYY''),DC_ACTIVITY'
|| ') '
|| 'pivot ( SUM(nvl(DC_HOURS,0)) for MON_YEAR in ('||l_pivot_cols||') )' ;
--EXECUTE IMMEDIATE l_pivot_qry;
RETURN l_pivot_qry;
END;
It works perfect when I hard code value of project code in the bold part of query however when I try to make the it dynamic by passing a item it is not showing any pivot columns.
Any suggestions would be really appreciated.
Best Regards.