Crosstab postgresql
13/09/2017
0
Estou tentando fazer um CROSSTAB no Postgres e está retornando o erro;
"ERROR: return and sql tuple descriptions are incompatible"
No que eu estou errando?
Comando;
SELECT * FROM
CROSSTAB('SELECT id_pes_alu_ava_questao, id_pes_alu_ava_questao, label FROM pes_alu_ava_que_alternativa ORDER BY id_pes_alu_ava_questao, label;')
AS TABELA(questao integer, alternativa1 text, alternativa2 text, alternativa3 text, alternativa4 text)
Tabela;
CREATE TABLE pes_alu_ava_que_alternativa
(
id serial NOT NULL,
nome text NOT NULL,
id_pes_alu_ava_questao integer NOT NULL,
label character(1),
correta_flg boolean NOT NULL,
id_usuario_cadastro integer NOT NULL,
id_usuario_informacao integer NOT NULL,
cadastro_dt timestamp without time zone NOT NULL DEFAULT now(),
informacao_dt timestamp without time zone NOT NULL DEFAULT now(),
CONSTRAINT pes_alu_ava_que_alternativa_pkey PRIMARY KEY (id)
)
SELECT id_pes_alu_ava_questao, id_pes_alu_ava_questao, label FROM pes_alu_ava_que_alternativa ORDER BY id_pes_alu_ava_questao, label;
1;1;"A"
1;1;"B"
1;1;"C"
1;1;"D"
6;6;"A"
6;6;"B"
6;6;"C"
6;6;"D"
7;7;"A"
7;7;"B"
7;7;"C"
7;7;"D"
8;8;"A"
8;8;"B"
8;8;"C"
8;8;"D"
9;9;"A"
9;9;"B"
9;9;"C"
9;9;"D"
10;10;"A"
10;10;"B"
10;10;"C"
10;10;"D"
11;11;"A"
11;11;"B"
11;11;"C"
11;11;"D"
12;12;"A"
12;12;"B"
12;12;"C"
12;12;"D"
13;13;"A"
13;13;"B"
13;13;"C"
13;13;"D"
14;14;"A"
14;14;"B"
14;14;"C"
14;14;"D"
15;15;"A"
15;15;"B"
15;15;"C"
15;15;"D"
16;16;"A"
16;16;"B"
16;16;"C"
16;16;"D"
17;17;"A"
17;17;"B"
17;17;"C"
17;17;"D"
18;18;"A"
18;18;"B"
18;18;"C"
18;18;"D"
19;19;"A"
19;19;"B"
19;19;"C"
19;19;"D"
20;20;"A"
20;20;"B"
20;20;"C"
20;20;"D"
21;21;"A"
21;21;"B"
21;21;"C"
21;21;"D"
22;22;"A"
22;22;"B"
22;22;"C"
22;22;"D"
23;23;"A"
23;23;"B"
23;23;"C"
23;23;"D"
24;24;"A"
24;24;"B"
24;24;"C"
24;24;"D"
"ERROR: return and sql tuple descriptions are incompatible"
No que eu estou errando?
Comando;
SELECT * FROM
CROSSTAB('SELECT id_pes_alu_ava_questao, id_pes_alu_ava_questao, label FROM pes_alu_ava_que_alternativa ORDER BY id_pes_alu_ava_questao, label;')
AS TABELA(questao integer, alternativa1 text, alternativa2 text, alternativa3 text, alternativa4 text)
Tabela;
CREATE TABLE pes_alu_ava_que_alternativa
(
id serial NOT NULL,
nome text NOT NULL,
id_pes_alu_ava_questao integer NOT NULL,
label character(1),
correta_flg boolean NOT NULL,
id_usuario_cadastro integer NOT NULL,
id_usuario_informacao integer NOT NULL,
cadastro_dt timestamp without time zone NOT NULL DEFAULT now(),
informacao_dt timestamp without time zone NOT NULL DEFAULT now(),
CONSTRAINT pes_alu_ava_que_alternativa_pkey PRIMARY KEY (id)
)
SELECT id_pes_alu_ava_questao, id_pes_alu_ava_questao, label FROM pes_alu_ava_que_alternativa ORDER BY id_pes_alu_ava_questao, label;
1;1;"A"
1;1;"B"
1;1;"C"
1;1;"D"
6;6;"A"
6;6;"B"
6;6;"C"
6;6;"D"
7;7;"A"
7;7;"B"
7;7;"C"
7;7;"D"
8;8;"A"
8;8;"B"
8;8;"C"
8;8;"D"
9;9;"A"
9;9;"B"
9;9;"C"
9;9;"D"
10;10;"A"
10;10;"B"
10;10;"C"
10;10;"D"
11;11;"A"
11;11;"B"
11;11;"C"
11;11;"D"
12;12;"A"
12;12;"B"
12;12;"C"
12;12;"D"
13;13;"A"
13;13;"B"
13;13;"C"
13;13;"D"
14;14;"A"
14;14;"B"
14;14;"C"
14;14;"D"
15;15;"A"
15;15;"B"
15;15;"C"
15;15;"D"
16;16;"A"
16;16;"B"
16;16;"C"
16;16;"D"
17;17;"A"
17;17;"B"
17;17;"C"
17;17;"D"
18;18;"A"
18;18;"B"
18;18;"C"
18;18;"D"
19;19;"A"
19;19;"B"
19;19;"C"
19;19;"D"
20;20;"A"
20;20;"B"
20;20;"C"
20;20;"D"
21;21;"A"
21;21;"B"
21;21;"C"
21;21;"D"
22;22;"A"
22;22;"B"
22;22;"C"
22;22;"D"
23;23;"A"
23;23;"B"
23;23;"C"
23;23;"D"
24;24;"A"
24;24;"B"
24;24;"C"
24;24;"D"
Rafael
Curtir tópico
+ 0
Responder
Post mais votado
13/09/2017
Olá, leu a documentação do PostgreSQL?
Link de CROSSTAB:
https://www.postgresql.org/docs/9.1/static/tablefunc.html
Link de CROSSTAB:
https://www.postgresql.org/docs/9.1/static/tablefunc.html
Venancio Alves
Responder
Clique aqui para fazer login e interagir na Comunidade :)