Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

cristianff

[Resolvido] Consulta SQL retornar resultado mesma linha

Recommended Posts

Galera, boa tarde.

Estou com uma dúvida e estava procurando nos tópicos e não achei nada parecido com a situação que me deparei.

 

Preciso fazer uma consulta que em vez de me retornar várias linhas, me retorne o resultado na mesma linha, um em frente ao outro.

Exemplo:

EMPCOD EMPNOME EMPSEQ EMPEMAIL

434 Ronaldo 1 compras@teste.com

434 Paulo 2 compras2@teste.com

434 Sandro 3 thiago.alcarin@teste.com

434 Tiago 4 rodrigo@teste.com

 

Precisaria que essa consulta me retornasse na mesma linha:

EMPCOD EMPNOME EMPSEQ EMPEMAIL EMPCOD EMPNOME EMPSEQ EMPEMAIL EMPCOD EMPNOME EMPSEQ EMPEMAIL

434 Ronaldo 1 compras@teste.com 434 Paulo 2 compras2@teste.com 434 Sandro 3 thiago.alcarin@teste.com

 

Preciso fazer isso direto no SQL.

Estava lendo sobre crosstab, mas não consegui a solução ainda.

 

São os contatos das tabelas de parceiros de negócios (cliente/fornecedor), cada parceiro tem mais de um contato que estão referenciados pelo EMPCOD, mas eu preciso que a consulta me retorne não em várias linhas e sim numa linha só um na frente do outro, tenho que fazer no SQL.

 

Muito obrigado pessoal.

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

A título de consulta, a solução para o questão que eu abri é a seguinte:

 

onde EMP0103 é o nome da tabela de contatos.

 

WITH
DATA AS (
SELECT EMPCOD, EMPCONNOME, EMPSEQ, EMPEMAIL
	ROW_NUMBER() OVER (PARTITION BY EMPCOD ORDER BY EMPCONNOME) RN
FROM EMP0103
)
SELECT EMPCOD,
	MAX(DECODE(RN,1,EMPCONNOME)) EMPCONNOME1, MAX(DECODE(RN,1,EMPSEQ) EMPSEQ1, MAX(DECODE(RN,1,EMPEMAIL) EMPEMAIL1,
	MAX(DECODE(RN,2,EMPCONNOME)) EMPCONNOME2, MAX(DECODE(RN,2,EMPSEQ) EMPSEQ2, MAX(DECODE(RN,1,EMPEMAIL) EMPEMAIL2,
	MAX(DECODE(RN,3,EMPCONNOME)) EMPCONNOME3, MAX(DECODE(RN,3,EMPSEQ) EMPSEQ3, MAX(DECODE(RN,3,EMPEMAIL) EMPEMAIL3,
FROM DATA
WHERE EMPCOD = 1
GROUP BY EMPCOD

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.