Dúvida SQL

xSnake75

Membro
Boas a todos

Estou com uma duvida na reslização de uma query

basicamente o que quero é juntar todos os dados de um campo de uma tabela e juntá-los numa coluna de outra,concatenando-as... é possivel?

Um exemplo

Listar todas as turmas de um determinado curso:

idcursoturmas
1a,b,c





Agradecido desde já pela ajuda :):):)
 
Podes mostrar a estrutura das tabelas? é que não estou a perceber a parte de "juntar todos os dados de um campo de uma tabela"...
 
O que eu acho que ele quer é tendo uma tabela com as colunas idcurso e turmas, ter:

idcurso turmas
1 a
1 b
1 c

e quer que fique como ele mostrou no exemplo. Pelo menos foi o que eu percebi. Penso que isso não seja possível de se fazer
 
Se bem entendi o que queres fazer, não sei mas talvez com uma function consegues chegar lá... tenta criar um cursor que vai lendo cada linha e escrevendo quando a condição for igual à que queres (neste caso idcurso = 1) e escreve numa string...no fim fazes o return dessa string... Assim de repetente é a única forma que me está a ocorrer

cumps
 
Aqui está (isto é o que realmente estou a fazer), caixas de email/mensagens

tenho uma tabela em q tenho id da mensagem, o texto e mais alguns dados

mail_sent:

idMail - PRIMARY
to - string para Email
cc - string para email
datatempo - datetime
subject - assunto tb string
corpomail - longtext

a outra tabela diz repeito às caixas de email, que vai buscar dados a uma terceira tabela, a de username [string]:

mensagem:

idMens - Foreign Key/PRIMARY
to - username
from - username = $_SESSION['user']
dt - datetime



o que quero, se possivel é,


|| idMens | mensagem.to (tantos quanto o idMens seja o mesmo) ||

|| 10 | a,b,c,d,e,f ..... ||


Eu poderia colocar o email apenas visto que em mail_sent.to estão lá todos os remetentes só que nem todos os utilizadores possuem email e daí fazer com o username, porque depois com o PHP valido quem tem email ou nao e regista tudo, enviando o respetivo email para quem o tem :)

Agradecido desde já pela disponibilidade dada ;P
 
Última edição:
select SUBSTRING((SELECT ',' + A_MINHA_TABELA.CAMPO_A_CONCATENAR FROM A_MINHA_TABELA ORDER BY A_MINHA_TABELA.CAMPO_A_CONCATENAR FOR XML PATH('')),2,200000)
 
Muito Obrigado !!

vou estudar mais um bocado esta função para a compreender melhor e penso que para já isto está resolvido


Uma vez mais muito obrigado pela disponibilidade e boa programação :P


Cumprimentos
 
Back
Topo