1 pièce(s) jointe(s)
Crosstab dynamic postgresql
Bonjour à tous,
J'ai créer une fonction à partir de crosstab pour affichage des données ligne en colonne, apparement elle marche bien mais mon problème est qu'il n'affiche pas toute les données, la fichier des données est en fichier excel et la fonction est :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| CREATE OR REPLACE FUNCTION dm.foo()
RETURNS text AS
$BODY$
DECLARE
dynamic_columns varchar;
BEGIN
select array_to_string(array_agg(distinct item_name order by item_name), ' text, ') into dynamic_columns from dm.clinicaldata;
return 'select * from crosstab (
''select Distinct subject_id, item_group_name, item_group_repeat, item_name, item_value from dm.clinicaldata order by 1'',
''select Distinct item_name from dm.clinicaldata order by item_name''
)
as newtable (
subject_id varchar, item_group_name varchar, item_group_repeat int, '|| dynamic_columns ||' text
)';
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION dm.foo()
OWNER TO postgres;
--------
CREATE OR REPLACE FUNCTION dm.bar()
RETURNS void AS
$BODY$
DECLARE
dyn_crosstab text;
BEGIN
DROP VIEW IF EXISTS barview;
select dm.foo() into dyn_crosstab;
execute 'create view barview as '||dyn_crosstab;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION dm.bar()
OWNER TO postgres;
------- execution du foction
select dm.bar();
------ pour affichage
select * from barview; |
est-ce vous pouvez m'aider à resoudre le problème