3
I have a query where I need the values of other related tables to be grouped in a single column. For this I use a for, however, the lines come duplicated.
I would need the result to bring only the full line, in the example line 6. Does anyone have any idea how to do this?
Below follows the select I use.
Select
MAS_INDIVIDUO.INDIVIDUO_ID AS INDIVIDUO_ID
,Upper(Stuff((Select ', ' + Cast(t3.BFA_DESCRICAO As varchar(100)) From MAS_BUSCA_DE_FALTOSOS t3 Where t3.BUSCA_DE_FALTOSOS_ID In (Select MAS_VISITA_BUSCA_FALTOSOS.BUSCA_DE_FALTOSOS_ID From MAS_VISITA_BUSCA_FALTOSOS Where MAS_VISITA_BUSCA_FALTOSOS.VISITA_ID = MAS_VISITA.VISITA_ID) For Xml Path('')), 1, 1, '')) BUSCA_ATIVA
,Upper(Stuff((Select ', ' + Cast(t2.ACO_DESCRICAO As varchar(100)) From MAS_ACOMPANHAMENTO t2 Where t2.ACOMPANHAMENTO_ID In (Select MAS_VISITA_ACOMPANHAMENTO.ACOMPANHAMENTO_ID From MAS_VISITA_ACOMPANHAMENTO Where MAS_VISITA_ACOMPANHAMENTO.VISITA_ID = MAS_VISITA.VISITA_ID) For Xml Path('')), 1, 1, '')) ACOMPANHAMENTO
,Upper(Stuff((Select ', ' + Cast(t4.MVI_DESCRICAO As varchar(100)) From MAS_MOTIVO_VISITA t4 Where t4.MOTIVO_VISITA_ID In (Select MAS_VISITA_MOTIVO_VISITA.MOTIVO_VISITA_ID From MAS_VISITA_MOTIVO_VISITA Where MAS_VISITA_MOTIVO_VISITA.VISITA_ID = MAS_VISITA.VISITA_ID) For Xml Path('')), 1, 1, '')) OUTROS
,Upper(Stuff((Select ', ' + Cast(t5.AOU_DESCRICAO As varchar(100)) From MAS_ACOMPANHAMENTO_OUTROS t5 Where t5.ACOMPANHAMENTO_OUTROS_ID In (Select MAS_VISITA_ACOMPANHAMENTO_OUTROS.ACOMPANHAMENTO_OUTROS_ID From MAS_VISITA_ACOMPANHAMENTO_OUTROS Where MAS_VISITA_ACOMPANHAMENTO_OUTROS.VISITA_ID = MAS_VISITA.VISITA_ID) For Xml Path('')), 1, 1, '')) ENDEMIA
From
MAS_VISITA
Inner Join
MAS_INDIVIDUO On MAS_INDIVIDUO.INDIVIDUO_ID = MAS_VISITA.INDIVIDUO_ID
LEFT Join
MAS_AGENTE On MAS_AGENTE.AGENTE_ID = MAS_VISITA.AGENTE_ID
Left Join
MAS_SEXO On MAS_SEXO.SEXO_ID = MAS_INDIVIDUO.SEXO_ID
left Join
MAS_VISITA_ACOMPANHAMENTO ON MAS_VISITA.VISITA_ID = MAS_VISITA_ACOMPANHAMENTO.VISITA_ID
Left Join
MAS_VISITA_MOTIVO_VISITA On MAS_VISITA.VISITA_ID = MAS_VISITA_MOTIVO_VISITA.VISITA_ID
Left Join
MAS_VISITA_BUSCA_FALTOSOS On MAS_VISITA.VISITA_ID = MAS_VISITA_BUSCA_FALTOSOS.VISITA_ID
Left Join
MAS_VISITA_ACOMPANHAMENTO_OUTROS On MAS_VISITA.VISITA_ID = MAS_VISITA_ACOMPANHAMENTO_OUTROS.VISITA_ID
WHERE
MAS_INDIVIDUO.INDIVIDUO_ID = 2822
GROUP BY
MAS_INDIVIDUO.INDIVIDUO_ID,
MAS_VISITA.VISITA_ID
GO
Eduardo Couto, if you have found the answer, do not forget to publish the answer here in your question.
– Rafael Marcos