1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Select retornando valores inconsistentes

Boa noite senhores, seguinte to com um problema para escrever um select.

Meu diagrama de dados é o seguinte:

https://www.filepicker.io/api/file/ru54waZZTuKKviPbAPOz

O problema é que na consulta que realizei esta retornando os dados de forma incorreta isso devido ao relacionamento n:n entre disciplina é professor.

O selec que desenvolvi é o seguinte:

SELECT
     C.NOME CURSO,
     D.NOME DISCIPLINA,
     P.NOME PROFESSOR,
     Pt.NOME NOMEPASTA,
     CASE
     WHEN PV.DATA_APLICADA IS NULL THEN
          'NÃO INFORMADO'
     ELSE
          PV.DATA_APLICADA
     END AS DATAAPLICADA
FROM
    FACULDADE F,
    FACULDADE_HAS_CURSO FHC,
    CURSO C,
    CURSO_HAS_DISCIPLINA CHD,
    DISCIPLINA D,
    DISCIPLINA_HAS_PROFESSOR DHP,
    PROFESSOR P,
    PROVA PV,
    PASTA PT
WHERE
    F.IDFACULDADE = FHC.FACULDADE_IDFACULDADE AND
    C.IDCURSO = FHC.CURSO_IDCURSO AND
    C.IDCURSO = CHD.CURSO_IDCURSO AND
    D.IDDISCIPLINA = CHD.DISCIPLINA_IDDISCIPLINA AND
    D.IDDISCIPLINA = DHP.DISCIPLINA_IDDISCIPLINA AND
    P.IDPROFESSOR = DHP.PROFESSOR_IDPROFESSOR AND
    P.IDPROFESSOR = PV.PROFESSOR_IDPROFESSOR AND
    PV.IDPROVA = PT.PROVA_IDPROVA;

O resultado da consulta com a indicação do erro segue na figura abaixo. O que está ocorrendo que eu não gostaria é que por exemplo nas duas primeiras linhas traz as disciplinas Álgebra e Cálculo III apontando para a mesma pasta, isso pois o mesmo professor aplica ambas as matérias.

https://www.filepicker.io/api/file/zRNQgAVRGySVMCUf65ok

Se alguém tiver alguma ideia de como solucionar o problema, mesmo que seja preciso criar outro diagrama de dados, não tem problema, o negocio é resolver e trazer os dados de forma correta.

Desde já agradeço por sua atenção, se fiz a pergunta no lugar errado me desculpe.

  • Qual a resposta que você estava esperando?

    Gustavo Freitas   03 de fev de 2015
  • Você quer juntar todas as matérias de um mesmo professor numa mesma linha?

    lucastody   03 de fev de 2015
  • Gostaria que por exemplo, nas linhas 1 e 2, retornasse apenas a 1ª, pois a segunda esta com o dado errado onde aponta a disciplina calculo III para a pasta Algebra - Elvira Padua 05-05-2010.

    Douglas Pitangui   03 de fev de 2015
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags sql mysql select ou faça a sua própria pergunta.