return: text
|
|
lang: plpgsql
|
|
parameters:
|
|
p0:
|
|
type: integer
|
|
name: input_rapport_id
|
|
p1:
|
|
type: text
|
|
name: select_name
|
|
strict: STRICT
|
|
src: |
|
|
DECLARE
|
|
rapport_columns TEXT;
|
|
rapports_cursor refcursor;
|
|
numero_rubrique INTEGER;
|
|
table_name TEXT;
|
|
BEGIN
|
|
rapport_columns = 'CASE';
|
|
OPEN rapports_cursor FOR
|
|
SELECT t_rapports_rubriques.numero_rubrique, t_indicateurs.table_name
|
|
FROM activite.t_rapports_rubriques, activite.t_indicateurs
|
|
WHERE rapport_id = $1 AND indicateur_id = t_indicateurs.oid
|
|
ORDER BY t_rapports_rubriques.numero_rubrique;
|
|
FETCH rapports_cursor INTO numero_rubrique, table_name;
|
|
WHILE FOUND LOOP
|
|
|
|
IF (table_name != 'SEP') THEN
|
|
rapport_columns = rapport_columns || ' WHEN t_rapports_rubriques.numero_rubrique = ' || numero_rubrique || ' THEN ' || $2 || '.indicateur' || numero_rubrique;
|
|
END IF;
|
|
|
|
FETCH rapports_cursor INTO numero_rubrique, table_name ;
|
|
END LOOP;
|
|
CLOSE rapports_cursor;
|
|
rapport_columns = rapport_columns || ' ELSE 0 END';
|
|
RETURN rapport_columns ;
|
|
END;
|