Hola a todos, he recibido una consulta si en APEX se puede hacer un reporte tipo Matrix, y paso a explicar como se puede hacer basandome en el libro de Oracle APEX Reporting.
Necesitamos tener el esquema OEHR de ejemplo.
1) Crear un Reporte Clasico tipo SQL Query (PL/SQL function body returing SQL query) Por ejemplo en Pagina 3
2) Source:
begin
return ‘WITH pivot_data AS (
SELECT department_id, job_id, salary
FROM oehr_employees
)
SELECT *
FROM pivot_data
PIVOT (
SUM(salary)
FOR department_id
IN (‘ || v(‘P3_EMPLOYEE_LIST’) || ‘)
)’;
end;
3) Tildar: Use Generic Column Names (parse query at runtime only) (dejar en 60 el maximo de columnas genericas)
4) En atribuos del reporte en la seccion: Column Attributes tildar PL/SQL e ingresar en Function returning colon delimited headings:
return ‘Job list:’||replace(v(‘P3_EMPLOYEE_LIST’),’,’,’:’);
5) Crear un ITEM oculto P3_EMPLOYEE_LIST
Source:
Only when current value in session state is null
SQL Query return single value
Ingresar la consulta:
select listagg(department_id,’,’) WITHIN GROUP (ORDER BY department_id) from (select distinct department_id from oehr_employees)