Ir para conteúdo
Seja Membro VIP - Remova Banners de Propagandas, Tenha Liberado Qualquer Download, Além de Acessos em Áreas Exclusivas!! ×
Quer acesso a todas as Áreas do Fórum, até aquelas só para membros VIPs? Também quer poder baixar qualquer ARQUIVO? ×

Consulta Sql Com Dados Do Aluno E Filiação


Lucas

Posts Recomendados


  • Tópicos Que Criei:  15
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  60
  • Conteúdo/Dia:  0.01
  • Reputação:   2
  • Pontos/Conquistas:  482
  • Conteúdo Resolvido:  0
  • Dias Ganho:  2
  • Status:  Offline
  • Idade:  60

Pessoal, tudo bem?

Tô apanhando aqui. Preciso de uma consulta para trazer os dados do aluno conforme eu fiz abaixo:

SELECT
DISTINCT PPS.CODIGO, SL.RA, PPS.NOME, PPS.DTNASCIMENTO, PPS.SEXO, PPS.NACIONALIDADE, PPS.RUA, PPS.NUMERO, PPS.COMPLEMENTO,
PPS.BAIRRO, PPS.ESTADO, PPS.CIDADE, PPS.CEP, PPS.PAIS, PPS.TELEFONE1 AS TELFIXO, PPS.TELEFONE2 AS TELCELULAR, PPS.CARTIDENTIDADE, PPS.UFCARTIDENT, PPS.ORGEMISSORIDENT, PPS.CPF,
(SELECT PP.NOME FROM PPESSOA PP
INNER JOIN SPESSOA SP ON PP.CODIGO = SP.CODPESSOAPAI
WHERE PP.CODIGO = SP.CODIGO AND PP.CODIGO = SP.CODPESSOAPAI
AND PP.CODIGO = PPS.CODIGO)AS PAI,
(SELECT PP.DTNASCIMENTO FROM SPESSOA SP
INNER JOIN PPESSOA PP ON PP.CODIGO = SP.CODPESSOAPAI
WHERE PP.CODIGO = SP.CODIGO
AND PP.CODIGO = PPS.CODIGO)AS DTNASCPAI,
(SELECT PP.NATURALIDADE FROM SPESSOA SP
INNER JOIN PPESSOA PP ON PP.CODIGO = SP.CODPESSOAPAI
WHERE PP.CODIGO = SP.CODIGO
AND PP.CODIGO = PPS.CODIGO)AS NATPAI,
(SELECT PP.NOME FROM SPESSOA SP
INNER JOIN PPESSOA PP ON PP.CODIGO = SP.CODPESSOAMAE
WHERE PP.CODIGO = SP.CODIGO
AND PP.CODIGO = PPS.CODIGO)AS MAE,
(SELECT PP.DTNASCIMENTO FROM SPESSOA SP
INNER JOIN PPESSOA PP ON PP.CODIGO = SP.CODPESSOAMAE
WHERE PP.CODIGO = SP.CODIGO
AND PP.CODIGO = PPS.CODIGO)AS DTNASCMAE,
(SELECT PPS.NATURALIDADE FROM SPESSOA SP
INNER JOIN PPESSOA PP ON PP.CODIGO = SP.CODPESSOAMAE
WHERE PP.CODIGO = SP.CODIGO
AND PP.CODIGO = PPS.CODIGO)AS NATMAE,
(SELECT PPS.NOME FROM SALUNO SA
INNER JOIN PPESSOA PP ON PP.CODIGO = SA.CODPESSOARACA
WHERE PP.CODIGO = SA.CODPESSOA
AND PP.CODIGO = PPS.CODIGO)AS RESPACAD
FROM PPESSOA PPS
INNER JOIN SALUNO SL ON SL.CODPESSOA = PPS.CODIGO
WHERE SL.CODPESSOA IS NOT NULL
porém ela não está trazendo para mim o nome do pai, o nome da mãe, as datas de nascimento deles e suas naturalidades. Alguém pode analisar a consulta e me dizer onde estou errando? Desde já agradeço.
Editado por Lucas
Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  899
  • Tópicos/Dia:  0.14
  • Meu Conteúdo:  8.841
  • Conteúdo/Dia:  1.34
  • Reputação:   310
  • Pontos/Conquistas:  106.574
  • Conteúdo Resolvido:  0
  • Dias Ganho:  195
  • Status:  Offline
  • Idade:  52
  • Dispositivo:  Windows

Mensagem Automática do Fórum RM

Este tópico foi verificado pela moderação/administração que foi postado em área errada !!

Por favor, verifique para que não postem em áreas indevidas. Vamos manter o Fórum o mais organizado possível.

Movido então, de : "Areas RestritasRestrito VIP e Equipe Fórum RM" para: "Sistemas RM[RM] SQL e Bancos de Dados".

Link para comentar
Compartilhar em outros sites

  • 4 meses depois...

  • Tópicos Que Criei:  3
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  8
  • Conteúdo/Dia:  0.00
  • Reputação:   1
  • Pontos/Conquistas:  76
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Lucas boa tarde.

Sou novo aqui no forum então nem sei se essa sua dúvida já foi resolvida.

Dei uma olhada na sua consulta e reparei o seguinte, nas suas subqueries que você faz pra retornar os dados do pai e da mãe do aluno você faz duas comparações distintas para o mesmo campo, uma no JOIN e outra no WHERE:

(SELECT PP.DTNASCIMENTO
   FROM SPESSOA SP
        INNER JOIN PPESSOA PP ON
              PP.CODIGO = SP.CODPESSOAPAI
  WHERE PP.CODIGO = SP.CODIGO
    AND PP.CODIGO = PPS.CODIGO) AS DTNASCPAI,

Aqui, no caso, você compara no INNER JOIN o PP.CODIGO com o SP.CODPESSOAPAI e no WHERE você compara o PP.CODIGO com SP.CODIGO. Com esta comparação a pessoa tem que ser igual ao pai dessa mesma pessoa, por isso não traz nada.

Abaixo eu copio um código que eu tinha aqui e dei uma adaptada pro seu uso. Veja se te ajuda. Eu não trabalhei com subqueries, apenas com um JOIN diretamente do SPESSOA:

SELECT PPESSOA_ALUNO.CODIGO        AS ALUNO_CODPESSOA,
       SALUNO.RA                   AS ALUNO_RA,
       PPESSOA_ALUNO.NOME          AS ALUNO_NOME,
       PPESSOA_ALUNO.DTNASCIMENTO  AS ALUNO_DATA_NASCIMENTO,
       PPESSOA_ALUNO.SEXO          AS ALUNO_SEXO,
       PPESSOA_ALUNO.NACIONALIDADE AS ALUNO_NACIONALIDADE,
       NACIONALIDADE_ALUNO.DESCRICAO
                                   AS ALUNO_NACIONALIDADE_DESCRICAO,
       PPESSOA_ALUNO.NATURALIDADE  AS ALUNO_NATURALIDADE,
       PPESSOA_ALUNO.RUA           AS ALUNO_ENDERECO_RUA,
       PPESSOA_ALUNO.NUMERO        AS ALUNO_ENDERECO_NUMERO,
       PPESSOA_ALUNO.COMPLEMENTO   AS ALUNO_ENDERECO_COMPLEMENTO,
       PPESSOA_ALUNO.BAIRRO        AS ALUNO_ENDERECO_BAIRRO,
       PPESSOA_ALUNO.CIDADE        AS ALUNO_ENDERECO_CIDADE,
       PPESSOA_ALUNO.ESTADO        AS ALUNO_ENDERECO_UF,
       PPESSOA_ALUNO.CEP           AS ALUNO_ENDERECO_CEP,
       PPESSOA_ALUNO.PAIS          AS ALUNO_ENDERECO_PAIS,
       PPESSOA_ALUNO.TELEFONE1     AS ALUNO_TELEFONE_FIXO,
       PPESSOA_ALUNO.TELEFONE2     AS ALUNO_TELEFONE_CELULAR,
       PPESSOA_ALUNO.CARTIDENTIDADE
                                   AS ALUNO_IDENTIDADE,
       PPESSOA_ALUNO.UFCARTIDENT   AS ALUNO_IDENTIDADE_UF,
       PPESSOA_ALUNO.ORGEMISSORIDENT
                                   AS ALUNO_IDENTIDADE_EMISSOR,
       PPESSOA_ALUNO.CPF           AS ALUNO_CPF,
       PPESSOA_PAI.NOME            AS PAI_NOME,
       PPESSOA_PAI.DTNASCIMENTO    AS PAI_DATA_NASCIMENTO,
       PPESSOA_PAI.NACIONALIDADE   AS PAI_NACIONALIDADE,
       NACIONALIDADE_PAI.DESCRICAO AS PAI_NACIONALIDADE_DESCRICAO,
       PPESSOA_PAI.NATURALIDADE    AS PAI_NATURALIDADE,
       PPESSOA_MAE.NOME            AS MAE_NOME,
       PPESSOA_MAE.DTNASCIMENTO    AS MAE_DATA_NASCIMENTO,
       PPESSOA_MAE.NACIONALIDADE   AS MAE_NACIONALIDADE,
       NACIONALIDADE_MAE.DESCRICAO AS MAE_NACIONALIDADE_DESCRICAO,
       PPESSOA_MAE.NATURALIDADE    AS MAE_NATURALIDADE
  FROM PPESSOA AS PPESSOA_ALUNO
       INNER JOIN SALUNO ON
             PPESSOA_ALUNO.CODIGO = SALUNO.CODPESSOA
        LEFT JOIN PCODNACAO AS NACIONALIDADE_ALUNO ON
             PPESSOA_ALUNO.NACIONALIDADE = NACIONALIDADE_ALUNO.CODCLIENTE
        LEFT JOIN SPESSOA ON
             PPESSOA_ALUNO.CODIGO = SPESSOA.CODIGO
        LEFT JOIN PPESSOA AS PPESSOA_PAI ON
             SPESSOA.CODPESSOAPAI = PPESSOA_PAI.CODIGO
        LEFT JOIN PCODNACAO AS NACIONALIDADE_PAI ON
             PPESSOA_PAI.NACIONALIDADE = NACIONALIDADE_PAI.CODCLIENTE
        LEFT JOIN PPESSOA AS PPESSOA_MAE ON
             SPESSOA.CODPESSOAPAI = PPESSOA_MAE.CODIGO
        LEFT JOIN PCODNACAO AS NACIONALIDADE_MAE ON
             PPESSOA_MAE.NACIONALIDADE = NACIONALIDADE_MAE.CODCLIENTE
 WHERE SALUNO.CODPESSOA is not null

Espero que te ajude.

Link para comentar
Compartilhar em outros sites

  • 2 semanas depois...

  • Tópicos Que Criei:  899
  • Tópicos/Dia:  0.14
  • Meu Conteúdo:  8.841
  • Conteúdo/Dia:  1.34
  • Reputação:   310
  • Pontos/Conquistas:  106.574
  • Conteúdo Resolvido:  0
  • Dias Ganho:  195
  • Status:  Offline
  • Idade:  52
  • Dispositivo:  Windows

Cassius, independente da data da postagem do Lucas, sua reposta é super válida.

:EmoticonosMsN (85):

Link para comentar
Compartilhar em outros sites

Participe da conversa

Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.

Visitante
Responder esse tópico

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Seu link foi automaticamente inserido no corpo do post.   Exibir como um link

×   Seu conteúdo anterior foi restaurado.   Limpar conteúdo do editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Criar Novo...

Informação Importante

Usando este site, você concorda com nossos Termos de Uso e nossa Política de Privacidade.