Concatenação de exames, por linha de amostra, em uma consulta
Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 5x no Cartão de Crédito.
Veja como comprar e saiba mais sobre o material oferecido, clicando aqui.
Usuário Silvano:
Boa noite!
Estou precisando muito de sua ajuda.
Tenho uma tabela chamada "vdrl_para_descobrir_gestantes", onde tem dois campos: - um chamado "Amostra" e outro "Exames". Quando eu abro a tabela, me apresenta várias linhas, com Exames diferentes, mas com mesmo número de Amostra. Preciso transformar estas diversas linhas de Exames diferentes, em apenas uma, como no exemplo abaixo:
Com está na tabela:
Amostra | Exame |
201104 | GLI |
201104 | TSH - T4L |
201104 | CTF - UR - AUR - CPK |
Preciso que fique assim na consulta:
Amostra | Exame |
201104 | GLI - TSH - T4L - CTF - UR - AUR - CPK |
Desde de já agradeço a oportunidade e atenção!
Suporte:
Silvano, segue o arquivo exemplo.
O função utilizada para concatenar os exames foi esta:
Public Function fncAgrupaExames(strAmostra As String) As String
Dim rs As DAO.Recordset
Dim strSql$
Dim strLista$
strSql = "SELECT * FROM VDRL_PARA_DESCOBRIR_GESTANTES "
strSql = strSql & "WHERE amostra =""" & strAmostra & """;"
Set rs = CurrentDb.OpenRecordset(strSql, 8)
Do While Not rs.EOF
strLista = strLista & "-" & Trim(rs!Exames)
rs.MoveNext
Loop
fncAgrupaExames = Mid(strLista, 2)
rs.Close
Set rs = Nothing
End Function
A função foi aplicada na consulta de agrupamento:
SELECT amostra, fncAgrupaExames([amostra]) AS Exame
FROM VDRL_PARA_DESCOBRIR_GESTANTES
GROUP BY amostra;
Usuário Silvano:
Maravilha, perfeito!
Muito obrigado!
Download
Não há comentário |