é 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 :
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.
Pergunta
ESTG
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 :
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 CurNomeDepois 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
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.