Dear all,
I am not able to insert data into a table in horizontal form.
The data is in below form :
A show a small set of data :-
*c_id f_name f_value*
2 k1 v1
2 k2 v2
2 k3 v3
2 k4 v4
3 a1 b1
3 a2 b2
3 a3 b3
3 a4 b4
3 a5 b5
1 c1 d1
1 c2 d2
3 a1 e1
3 a2 e2
3 a3 e3
3 a4 e4
3 a5 e5
Now i want to show the above data in horizontal form as per c_id ,
fore.g if a user enters c_id 3 then output is :
*c_id a1 a2 a3 a4
a5
3 b1 b2 b3 b4 b5
**3 e1 e2 e3 e4
e5
*i.e f_name entries became the columns of the table & f_value become the
rows
I research on crosstab function but i don'e think it is useful because
we have to give column names in the command.
I want to show it dynamically . I try to create a procedure & also
attach it.
A user enters only c_id & output is shown fore.g if a user enters c_id 1
then output is
*c_id c1 c2*
1 d1 d2
I show the data in simple way bt there r 10000 of rows & 100 of c_id's.
Please let me know if it is possible or any information is required.
Thanks
create function user_news_new(text) returns void as $$
declare
name text;
cat_name alias for $1;
begin
CREATE TEMPORARY TABLE temptest(category_id INTEGER,category_name
text); /* create a temp table to hold all the dynamic schemas*/
for name in select label_name from category_new where category_id =
(select category_id from category where category_name=cat_name) loop
execute 'alter table temptest add column ' || name || ' text';
end loop;
end;
$$ language plpgsql;