Ir para conteúdo

POWERED BY:

Arquivado

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

TFSF

Unir Campos

Recommended Posts

Boas Mestres,

 

 

é o seguinte eu queria fazer o seguinte eu tenho uma tabela parecida com a de baixo

 

Nome | telefone|

Ana | 923424|

Ana |2342342|

Pedro | 542342|

Pedro | 342424|

andre | 4234234|

 

eu queria fazer um select para ficar

 

Nome | telefone|

Ana | 923424 , 2342342|

Pedro | 542342,342424|

andre | 4234234|

 

 

Eu já tentei um codigo que topei na net, vou deixar aqui :

 

 

SQL:

 

declare @telefone varchar(25)

declare @aux varchar(200)

declare @Nome varchar(200)

 

set @aux = ''

 

DECLARE CurNome CURSOR FOR

SELECT DISTINCT nome FROM #Temp OPEN CurNome

FETCH NEXT FROM CurNome INTO @ContactName

WHILE @@FETCH_STATUS = 0

BEGIN DECLARE CurTelefone CURSOR FOR

SELECT Nome,telefone FROM #temp WHERE nome=@nome

OPEN CurTelefone

FETCH NEXT FROM telefone INTO @nome,@telefone

WHILE @@FETCH_STATUS = 0

BEGIN IF @aux = ''

BEGIN SET @aux = @telefone

END

ELSE

BEGIN SET @aux = @aux+ ',' + @telefone

END

FETCH NEXT FROM CurTelefone INTO @Nome,@telefone

END

CLOSE CurTelefone

DEALLOCATE CurTelefone

 

INSERT INTO #Temp VALUES (@Nome,@aux)

 

SET @aux = ''

 

 

FETCH NEXT FROM CurNome INTO @Nome

END

CLOSE CurNome

DEALLOCATE CurNome

 

 

 

Depois de correr isto o que me aparece é :

 

Ana | 923424 , 2342342|

Ana | 923424|

Ana |2342342|

Pedro | 542342,342424|

Pedro | 542342|

Pedro | 342424|

andre | 4234234|

 

O que eu queria era se alguém me podia ajudar o que tenho de fazer no meu codigo para não aparecer os campos a negrito.

 

 

Se alguém conhecer uma soluçao que não envolva tabelas temporarias e cursores e me puder dizer agradecia.

 

Obrigado

 

Ja agora como posso mandar um valor que esta numa @Variavel para uma tabela?

Compartilhar este post


Link para o post
Compartilhar em outros sites

TFSF,

Se for SQL2005 ou SQL2008 tem uma funcoa chamada PIVOT que faz exatamente o que quer ^^

http://social.msdn.microsoft.com/Forums/pt-BR/520/thread/b344d64a-cce4-4ab4-aa47-7eb6225468cc/

 

Já se for SQL2000 nao tem jeito (ao menos que eu conheca)... tem que usar um cursor msm....

Tem um exemplo aki:

 

 

http://forum.imasters.com.br/index.php?/topic/224865-transformando-varias-linhas-em-uma-so-coluna/

 

 

Abçs

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.