none
TOP 1 RRS feed

  • Discussão Geral

  • Galera preciso fazer um select que me retorna apenas o primeiro registro ordenado por ordem crescente.

    Como faço para fazer um top(1) na query abaixo:

    SELECT TOP (1)  AGEND.ID_TAREFA
          ,AGEND.DT_HORA
          ,AGEND.ID_PERIODO
    	  ,PERIODO.TX_DESCRICAO AS PERIODO_DESCRICAO
          ,AGEND.ID_ACAO
          ,AGEND.FL_STATUS
          ,AGEND.NR_PREDECESSOR
    	  ,ACAO.TX_DESCRICAO AS ACAO_DESCRICAO
    	  ,ACAO.TX_PATH
    	  ,ACAO.TX_TIPO
    	  
    FROM 
    dbo.TB_Agendamento_Tarefa AGEND
    
    INNER JOIN DBO.TB_Agendamento_Periodo PERIODO ON
    AGEND.id_periodo = PERIODO.id_periodo
    
    INNER JOIN DBO.TB_Agendamento_Acao ACAO ON
    ACAO.ID_ACAO = AGEND.ID_ACAO
    
    WHERE 
    AGEND.FL_STATUS = 1 
    AND 
    ACAO.TX_TIPO = 'CRAWLER'
    
    ORDER BY AGEND.NR_PREDECESSOR

    Obrigado


    SirSmart

    • Tipo Alterado Marcos SJ sexta-feira, 29 de abril de 2016 18:33 How to
    sexta-feira, 29 de abril de 2016 17:27

Todas as Respostas

  • O seu select está certo ? trás algum registrO ?

    Segue um exemplo de select por ordem crescente:

    SELECT TOP 1 id FROM tabela where cliente = 'cliente' ORDER BY id_mensagem ASC

    sexta-feira, 29 de abril de 2016 17:35
  • Boa tarde,

    Essa query que você postou deve ordenar as linhas pela coluna Agend.Nr_Predecessor de forma crescente e retornar apenas a primeira linha.

    Não era esse o resultado esperado?


    Assinatura: http://www.imoveisemexposicao.com.br

    sexta-feira, 29 de abril de 2016 17:37
  • Meu problema é retornar todos os campos, utilizando top 1. Não sei como fazer  ou se dá para fazer isso 

    Obrigado


    SirSmart

    sexta-feira, 29 de abril de 2016 17:49
  • Pelo que vi a query que você postou retorna 10 campos.

    Se você precisa de mais campos basta adiciona-los normalmente.


    Assinatura: http://www.imoveisemexposicao.com.br

    sexta-feira, 29 de abril de 2016 18:38
  • Sim, em relação a clausula SELECT, faz-se exatamente como vc fez. 

    o TOP é uma clausula opcional, antes dos campos... é em relação ao NUMERO de registros a serem retornados, e não tem relação com os campos do select...

    Select top 1  * From.... por exemplo, é valido

    Select top 20 Data, Descricao, Codigo From....

    Select top 1 Data, * From....


    Julio C.

    sexta-feira, 29 de abril de 2016 18:55
  • SELECT TOP 1 AGEND.ID_TAREFA ,AGEND.DT_HORA ,AGEND.ID_PERIODO ,PERIODO.TX_DESCRICAO AS PERIODO_DESCRICAO ,AGEND.ID_ACAO ,AGEND.FL_STATUS ,AGEND.NR_PREDECESSOR ,ACAO.TX_DESCRICAO AS ACAO_DESCRICAO ,ACAO.TX_PATH ,ACAO.TX_TIPO FROM dbo.TB_Agendamento_Tarefa AGEND INNER JOIN DBO.TB_Agendamento_Periodo PERIODO ON AGEND.id_periodo = PERIODO.id_periodo INNER JOIN DBO.TB_Agendamento_Acao ACAO ON ACAO.ID_ACAO = AGEND.ID_ACAO WHERE AGEND.FL_STATUS = 1 AND ACAO.TX_TIPO = 'CRAWLER' ORDER BY AGEND.NR_PREDECESSOR asc

    caso não de certo verifique o inner join


    sexta-feira, 29 de abril de 2016 18:59