I have a query below: And I want to make this pivot dynamic in procedures
SELECT *
FROM ( SELECT tcsd AS Aggregator,
country,
Or use RTRIM:
CREATE OR REPLACE PROCEDURE intl_sms_aggr (p_cursor IN OUT SYS_REFCURSOR)
AS
l_query LONG := 'SELECT * FROM ( SELECT tcsd AS Aggregator,
country,
SUM (COUNT) AS total,
COUNT (dest_addr) AS bnum,
time_stamp
FROM t_raw_intl_sms_aggr
GROUP BY tcsd,
COUNT,
country,
time_stamp
ORDER BY tcsd,
COUNT,
country,
time_stamp) PIVOT (SUM (total) AS total,
COUNT (bnum) AS bnum_total
FOR time_stamp
IN (';
BEGIN
FOR x IN (select time_stamp from prev_month)
LOOP
l_query := l_query|| REPLACE (' TO_DATE(''$X$'',''yyyymmdd'') as DAY_$X$_TOTAL, ','$X$',x.time_stamp);
END LOOP;
l_uqery := RTRIM(l_query,',');
l_query := l_query || ')) ORDER BY aggregator, country';
-- OPEN p_cursor FOR l_query;
DBMS_OUTPUT.put_line ('query: ' || l_query);
END;