SQL SERVER - Dados em uma única linha

25/10/2018

0

Olá, boa tarde a todos. Tenho a seguinte consulta:
[SQL]
DECLARE @RA VARCHAR(30),
@P VARCHAR(MAX)

SET @RA ='0001720'
SET @P=(SELECT TEXTO
FROM SPARAM(NOLOCK)
WHERE ID = 'IDPERLET'
AND CODTIPOCURSO = 1)
SELECT PPESSOA.NOME ALUNO,
PAIS.NOME PAIS

FROM SALUNO (NOLOCK)
INNER JOIN SPESSOA (NOLOCK)
ON SPESSOA.CODIGO = SALUNO.CODPESSOA
INNER JOIN PPESSOA (NOLOCK)
ON PPESSOA.CODIGO = SALUNO.CODPESSOA
INNER JOIN VFILIACAO (NOLOCK) ON
VFILIACAO.CODPESSOAFILHO=PPESSOA.CODIGO
INNER JOIN PPESSOA PAIS (NOLOCK)
ON PAIS .CODIGO = VFILIACAO.CODPESSOAFILIACAO
INNER JOIN PCODNACAO (NOLOCK)
ON PCODNACAO.CODCLIENTE = PPESSOA.NACIONALIDADE
INNER JOIN PCODESTCIVIL (NOLOCK)
ON PCODESTCIVIL.CODCLIENTE = PPESSOA.ESTADOCIVIL
INNER JOIN SHABILITACAOALUNO (NOLOCK)
ON SHABILITACAOALUNO.CODCOLIGADA = SALUNO.CODCOLIGADA
AND SHABILITACAOALUNO.RA = SALUNO.RA
INNER JOIN SMATRICPL (NOLOCK)
ON SMATRICPL.RA =SHABILITACAOALUNO.RA
AND SMATRICPL.CODCOLIGADA = SHABILITACAOALUNO.CODCOLIGADA
AND SMATRICPL.IDHABILITACAOFILIAL=SHABILITACAOALUNO.IDHABILITACAOFILIAL
INNER JOIN SHABILITACAOFILIAL (NOLOCK)
ON SHABILITACAOFILIAL.CODCOLIGADA = SHABILITACAOALUNO.CODCOLIGADA
AND SHABILITACAOFILIAL.IDHABILITACAOFILIAL = SHABILITACAOALUNO.IDHABILITACAOFILIAL
INNER JOIN SPLETIVO (NOLOCK) ON
SPLETIVO.IDPERLET=SMATRICPL.IDPERLET AND
SPLETIVO.CODCOLIGADA=SMATRICPL.CODCOLIGADA AND
SPLETIVO.CODFILIAL=SMATRICPl.CODFILIAL AND
SPLETIVO.CODTIPOCURSO=SHABILITACAOFILIAL.CODTIPOCURSO
INNER JOIN SCURSO (NOLOCK)
ON SCURSO.CODCURSO = SHABILITACAOFILIAL.CODCURSO
AND SCURSO.CODCOLIGADA = SHABILITACAOFILIAL.CODCOLIGADA
WHERE SALUNO.RA = @RA
AND SMATRICPL.IDPERLET = @P
AND SHABILITACAOALUNO.CODSTATUS = '12'
AND CONVERT(DATE, GETDATE()) <= SPLETIVO.DTFIM
[/SQL]
Que retorna os dados em tres linha diferentes:
Danielle Ribeiro Gaioto Luci Aparecida Ribeiro Gaioto
Danielle Ribeiro Gaioto José Francisco Gaioto
Danielle Ribeiro Gaioto João Gonçalves da Cruz
Precisava de fazer com que os dados ficassem em uma única linha. Alguem sabe como?
Chromusmaster

Chromusmaster

Responder

Post mais votado

26/10/2018

veja este artigo:

https://vladimirrech.blogspot.com/2014/02/pivot-dinamico-com-sql-server.html

Emerson Nascimento

Emerson Nascimento
Responder

Mais Posts

26/10/2018

Chromusmaster

Pivot nesse caso não me auxiliaria, preciso jogar ela dentro de um sistema depois. Consegui da seguinte maneira:<br />
DECLARE @RA VARCHAR(30),<br />
        @P  VARCHAR(max)<br />
<br />
SET @RA =''0001720''<br />
SET @P=(SELECT texto<br />
        FROM   sparam(nolock)<br />
        WHERE  id = ''IDPERLET''<br />
               AND codtipocurso = 1)<br />
<br />
SELECT DISTINCT<br />
ppessoa.nome                                                         ALUNO,<br />
(SELECT periodo<br />
 FROM   smatricpl<br />
 WHERE  ra = saluno.ra<br />
        AND smatricpl.codcoligada = saluno.codcoligada<br />
        AND smatricpl.idhabilitacaofilial =<br />
            shabilitacaoaluno.idhabilitacaofilial<br />
        AND smatricpl.codfilial = shabilitacaofilial.codfilial<br />
        AND smatricpl.idperlet = @P)                                 PERIODO,<br />
(SELECT nome<br />
 FROM   scurso<br />
 WHERE  scurso.codcurso = shabilitacaofilial.codcurso<br />
        AND scurso.codcoligada = shabilitacaofilial.codcoligada)     CURSO,<br />
pcodnacao.descricao<br />
NACIONALIDADE,<br />
pcodestcivil.descricao                                               AS<br />
ESTADOCIVIL,<br />
ppessoa.naturalidade                                                 AS<br />
CIDADENATAL,<br />
ppessoa.dtnascimento,<br />
Stuff((SELECT '','' + PAIS.nome PAIS<br />
       FROM   saluno (nolock)<br />
              INNER JOIN spessoa (nolock)<br />
                      ON spessoa.codigo = saluno.codpessoa<br />
              INNER JOIN ppessoa (nolock)<br />
                      ON ppessoa.codigo = saluno.codpessoa<br />
              INNER JOIN vfiliacao (nolock)<br />
                      ON vfiliacao.codpessoafilho = ppessoa.codigo<br />
              INNER JOIN ppessoa PAIS (nolock)<br />
                      ON PAIS .codigo = vfiliacao.codpessoafiliacao<br />
       WHERE  saluno.ra = @RA<br />
       FOR xml path(''''), type).value(''.'', ''varchar(max)''), 1, 1, '''') AS Products<br />
FROM   saluno (nolock)<br />
       INNER JOIN spessoa (nolock)<br />
               ON spessoa.codigo = saluno.codpessoa<br />
       INNER JOIN ppessoa (nolock)<br />
               ON ppessoa.codigo = saluno.codpessoa<br />
       INNER JOIN vfiliacao (nolock)<br />
               ON vfiliacao.codpessoafilho = ppessoa.codigo<br />
       INNER JOIN ppessoa PAIS (nolock)<br />
               ON PAIS .codigo = vfiliacao.codpessoafiliacao<br />
       INNER JOIN pcodnacao (nolock)<br />
               ON pcodnacao.codcliente = ppessoa.nacionalidade<br />
       INNER JOIN pcodestcivil (nolock)<br />
               ON pcodestcivil.codcliente = ppessoa.estadocivil<br />
       INNER JOIN shabilitacaoaluno (nolock)<br />
               ON shabilitacaoaluno.codcoligada = saluno.codcoligada<br />
                  AND shabilitacaoaluno.ra = saluno.ra<br />
       INNER JOIN shabilitacaofilial (nolock)<br />
               ON shabilitacaofilial.codcoligada = shabilitacaoaluno.codcoligada<br />
                  AND shabilitacaofilial.idhabilitacaofilial =<br />
                      shabilitacaoaluno.idhabilitacaofilial<br />
WHERE  saluno.ra = @RA<br />
       AND shabilitacaoaluno.codstatus = ''12'' 
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar