Pular para o conteúdo
  • Este tópico contém 3 respostas, 2 vozes e foi atualizado pela última vez 17 anos atrás por Ishii.
Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • #81106
    drhoffman
    Participante

      Boas pessoal! tou a fazer um projecto para a faculdade sobre grandes premios de motos! tenho uma duvida

      preciso de fazer uma query que me diz o seguinte , “Quais os pilotos que na primeira corrida do ano passado gastaram menos tempo que a media dos cinco primeiros?”

      eu fiz assim

      SELECT pp.id_piloto,pp.tempo_total
      FROM prova_piloto pp,(SELECT AVG(TT) AS MEDIA
      FROM(SELECT pp.tempo_total AS TT
      FROM prova_piloto pp,provas pr
      WHERE pp.id_prova=pr.id_prova
      AND pp.id_prova=1
      ORDER BY pp.tempo_total
      )
      WHERE ROWNUM<6)
      WHERE pp.tempo_total <= MEDIA AND pp.id_prova=1 o que eu nao consigo faxer é o que se relaciona com a primeira corrida do ano passado! eu pus id_prova=1 so para testar e ele ta a funcionar mas gostava de saber como faço para obter a primeira corrida do ano passado! alguem me pode dar uma ajudinha? Obrigado 😀

      #81107
      Ishii
      Participante

        Se entendi direito substitua a parte:

        AND pp.id_prova=1

        por

        AND pp.id_prova= (select min(id_prova) from provas )

        ou ainda se a tabela provas tiver um campo tipo data da Prova coloque na query esta condição.

        []s Ishii

        #81108
        drhoffman
        Participante

          BOas ishii , obrigado pela resposta! eu quero mesmo fazer esta query atraves da data_prava , nao quero fazer com o id ! ou seja eu quero q ele me devolva a prova em que a data_prova seja o mais proximo possivel do inicio de 2007! quero que ele me encontre atraves da data_prova a primeira corrida do ano passado! será que da para fazer uma coisa do genero

          AND data_prova= (select ,p.id_prova, min(p.data_prova)
          from provas
          where TO_CHAR(p.data_prova,’yyyy’)=(TO_CHAR(SYSDATE,’yyyy’)-1)
          group by p.id_prova
          )

          acha que se eu fizer uma coisa destas resolve o meu problema?

          obrigado

          Paulo[]

          #81109
          Ishii
          Participante

            Paulo,

            Acho mais fácil usar assim:

            AND data_prova= (select min(data_prova)
            from provas
            where round(data_prova,’year’) = ’01-jan-2007′
            )

            []s Ishii

          Visualizando 4 posts - 1 até 4 (de 4 do total)
          • Você deve fazer login para responder a este tópico.
          plugins premium WordPress