Select row cells as new columns

From: danycxxx <danycxxx(at)yahoo(dot)com>
To: pgsql-sql(at)postgresql(dot)org
Subject: Select row cells as new columns
Date: 2012-05-25 09:03:41
Message-ID: 1337936621862-5709987.post@n5.nabble.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Hello. I hope you can help me with this or at least guide me into the right
direction:

I have 2 tables:

CREATE TABLE infos
(
id integer NOT NULL DEFAULT nextval('info_id_seq'::regclass),
name text NOT NULL,
id_member integer NOT NULL,
title text,
min_length integer NOT NULL DEFAULT 0,
max_length integer NOT NULL DEFAULT 30,
required boolean NOT NULL DEFAULT false,
type text NOT NULL DEFAULT 'text'::text,
CONSTRAINT info_pkey PRIMARY KEY (id ),
CONSTRAINT infos_id_member_fkey FOREIGN KEY (id_member)
REFERENCES members (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
OIDS=FALSE
);
ALTER TABLE infos
OWNER TO postgres;

-- Index: info_id_idx

-- DROP INDEX info_id_idx;

CREATE INDEX info_id_idx
ON infos
USING btree
(id );

and

CREATE TABLE info_data
(
id serial NOT NULL,
id_info integer,
value text,
CONSTRAINT info_data_pkey PRIMARY KEY (id ),
CONSTRAINT info_data_id_info_fkey FOREIGN KEY (id_info)
REFERENCES infos (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
OIDS=FALSE
);
ALTER TABLE info_data
OWNER TO postgres;

-- Index: info_data_id_idx

-- DROP INDEX info_data_id_idx;

CREATE INDEX info_data_id_idx
ON info_data
USING btree
(id );

with the following values:

infos:
COPY infos (id, name, id_member, title, min_length, max_length, required,
type) FROM stdin;
1 nume 1 Nume 0 30 t text
2 prenume 1 Prenume 0 30 t text
3 cnp 1 C.N.P. 13 13 t number
4 nume anterior 1 Nume anterior 0 30 f text
5 stare civila 1 Starea civila 0 30 f text
6 cetatenie 1 Cetatenie 0 30 f text
7 rezidenta 1 Rezidenta 0 30 f text
9 tip act 1 C.I. / B.I. 0 10 t text
10 serie ci 1 Serie C.I. / B.I. 0 30 t text
11 numar ci 1 Numar C.I. / B.I. 0 30 t text
12 data eliberarii 1 Data eliberarii 0 30 t text
13 eliberat de 1 Eliberat de 0 30 t text
8 adresa 1 Adresa 0 50 f text
\.

info_data:
COPY info_data (id, id_info, value) FROM stdin;
1 1 a
2 2 a
3 3 100
4 4
5 5
6 6
7 7
8 8
9 9 ci
10 10 sv
11 11 13
12 12 132
13 13 123
14 1 b
15 2 b
16 3 100
17 4
18 5
19 6
20 7
21 8
22 9 BI
23 10 XT
24 11 123
25 12 10
26 13 10
\.

The question:
How can I achive this output?

nume, prenume, cnp, nume anterior, stare civila, ... (as columns - built
from unique rows from infos)
a , a, .......
b , b, ....... (as rows)

http://postgresql.1045698.n5.nabble.com/file/n5709987/info_data.sql
info_data.sql
http://postgresql.1045698.n5.nabble.com/file/n5709987/infos.sql infos.sql

--
View this message in context: http://postgresql.1045698.n5.nabble.com/Select-row-cells-as-new-columns-tp5709987.html
Sent from the PostgreSQL - sql mailing list archive at Nabble.com.

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Jan Lentfer 2012-05-25 12:41:33 Re: Select row cells as new columns
Previous Message Svenne Krap 2012-05-25 08:28:03 Job control in sql