Pular para o conteúdo

Fóruns SQL e PL/SQL Consulta em tabela DE-PARA Consulta em tabela DE-PARA

#108314
Avatar photoJosé Laurindo Chiappa
Moderador

    Um detalhe adicional, que é meio óbvio mas talvez te escape : se vc quiser ter filtros adicionais vc os inclui no WHERE , e como no meu caso estou usando a sintaxe de join nativa do Oracle (ie, informando os relacionamentos diretamente no WHERE ao invés de usar uma keyword JOIN) então num caso em que eu tenha filtros E relacionamentos a indicar, usando a sintaxe Oracle tudo fica incluso no WHERE : por exemplo, vc queria saber o status do aluno JOÃO, informe isso como filtro :

    SQL> select ALU.nome, AVA.resultado, AVA.Historia, AVA.Matematica, AVA.Geografia
    2 from ALUNO ALU, AVALIACAO AVA
    3 where ALU.NOME = ‘João’
    4 and AVA.Historia = ‘Sim’
    5 and AVA.Matematica = ‘Sim’
    6 and AVA.Geografia = ‘Sim’
    7 and ALU.historia = AVA.historia
    8 and ALU.Matematica = AVA.Matematica
    9* and ALU.Geografia = AVA.Geografia;

    NOME RESULTADO HIS MAT GEO
    ——————– ———- — — —
    João APROVADO Sim Sim Sim

    ==> vc quer saber se o José teve Aprovação, informe José como condição de filtro :

    SQL> select ALU.nome, AVA.resultado, AVA.Historia, AVA.Matematica, AVA.Geografia
    2 from ALUNO ALU, AVALIACAO AVA
    3 where ALU.NOME = ‘José’
    4 and AVA.Historia = ‘Sim’
    5 and AVA.Matematica = ‘Sim’
    6 and AVA.Geografia = ‘Sim’
    7 and ALU.historia = AVA.historia
    8 and ALU.Matematica = AVA.Matematica
    9* and ALU.Geografia = AVA.Geografia;

    no rows selected

    SQL>

    ==> okdoc ?? Evidentemente, é tarefa do teu Aplicativo formatar a informação, por exemplo dando uma mensagem mais amigável quando dados não são encontrados (que no nosso exemplo significa que Não havia Aprovação, o Aluno foi reprovado), formatando números e datas, enfim, fazendo a Interface entre o banco de dados e o usuário final…. DE JEITO NENHUM, se o teu Objetivo é funcionamento amigável ao usuário, vc retorna pra ele os dados tal qual o banco de dados os envia….

    []s

    Chiappa