Lucas Postado 30 de Julho de 2015 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 Denunciar Compartilhar Postado 30 de Julho de 2015 (editado) 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 30 de Julho de 2015 por Lucas Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Jair - Fórmula Postado 31 de Julho de 2015 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 Denunciar Compartilhar Postado 31 de Julho de 2015 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 Restritas → Restrito VIP e Equipe Fórum RM" para: "Sistemas RM → [RM] SQL e Bancos de Dados". Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Cassius Postado 21 de Dezembro de 2015 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 Denunciar Compartilhar Postado 21 de Dezembro de 2015 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. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Jair - Fórmula Postado 29 de Dezembro de 2015 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 Denunciar Compartilhar Postado 29 de Dezembro de 2015 Cassius, independente da data da postagem do Lucas, sua reposta é super válida. Citar Link para comentar Compartilhar em outros sites Mais opções de compartilhamento...
Posts Recomendados
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.