Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bom dia amigos, essa é minha primeira postagem e, embora o título do post não seja novo, não encontrei uma solução para o caso. Agradeço demais se alguém puder ajudar.
Tenho a seguinte tabela:
Código | Tipo_1 | Nome_Tipo_1 |
40 | 10 | 1 |
40 | 20 | 2 |
50 | 10 | 2 |
precisaria que ela ficasse assim (no script):
Códido | Tipo_1 | Nome_ Tipo_1 | Tipo_2 | Nome_Tipo_3 |
40 | 10 | 1 | 20 | 2 |
50 | 10 | 2 |
Esse é um modelo resumido. Poderia existir mais 4 colunas (Tipo 3, Nome Tipo 3, Tipo 4, Nome Tipo 4). Será que algum usuário mais experiente já enfrentou essa questão. Já tentei o crosstable, mas ele faz o contrário do que desejo. Também vi os posts que juntam todos os dados em uma única coluna, mas não resolve meu problema.
Obrigado antecipadamente.
Abraços,
Bem, acabei conseguindo fazer da seguinte forma:
Tabela:
LOAD [Codigo],
//junta as duas colunas em uma só
Tipo_1 & ';' & Nome_Tipo_1 as ABJuntos //10;1 e 20;2
FROM xxxxxxxx;
STORE Tabela into [Temp.qvd] (qvd);
DROP Table Tabela;
Tabela2:
Load
[Código],
// concatena a coluna cujos campos foram juntados anteriormente a partir do 'Código' em comum. No exemplo, junta as informações das linhas 40 em apenas uma linha 40 (10;1;20;2)
CONCAT([ABJuntos],';') as ABJuntos
Group By [A];
LOAD [Código],
ABJuntos
FROM
[Temp.qvd]
(qvd);
store Tabela2 into [Temp.qvd] (qvd);
DROP Table Tabela2;
//gera uma coluna para cada informação separada por ;
Load
SubField(ABJuntos,';',1) as Tipo_1,
SubField(ABJuntos,';',2) as Nome_Tipo_1,
SubField(ABJuntos,';',3) as Tipo_2,
SubField(ABJuntos,';',4) as Nome_Tipo_2
From (Temp.qvd)
Funcionou aqui... estou compartilhando porque talvez ajude mais alguém e para colher eventuais críticas de problemas que o código possa gerar.
Abraço,
Dênisson
Hi Denisson!
I dont see an easy or complete way to solve your problem with no scripting. The most understandable and quik solution may be using a straight (or pivot) table and define as much expressions as you need. Please, see the attached document with my proposal.
Bests,
Jaime.
Bem, acabei conseguindo fazer da seguinte forma:
Tabela:
LOAD [Codigo],
//junta as duas colunas em uma só
Tipo_1 & ';' & Nome_Tipo_1 as ABJuntos //10;1 e 20;2
FROM xxxxxxxx;
STORE Tabela into [Temp.qvd] (qvd);
DROP Table Tabela;
Tabela2:
Load
[Código],
// concatena a coluna cujos campos foram juntados anteriormente a partir do 'Código' em comum. No exemplo, junta as informações das linhas 40 em apenas uma linha 40 (10;1;20;2)
CONCAT([ABJuntos],';') as ABJuntos
Group By [A];
LOAD [Código],
ABJuntos
FROM
[Temp.qvd]
(qvd);
store Tabela2 into [Temp.qvd] (qvd);
DROP Table Tabela2;
//gera uma coluna para cada informação separada por ;
Load
SubField(ABJuntos,';',1) as Tipo_1,
SubField(ABJuntos,';',2) as Nome_Tipo_1,
SubField(ABJuntos,';',3) as Tipo_2,
SubField(ABJuntos,';',4) as Nome_Tipo_2
From (Temp.qvd)
Funcionou aqui... estou compartilhando porque talvez ajude mais alguém e para colher eventuais críticas de problemas que o código possa gerar.
Abraço,
Dênisson