none
descobrir valor anterior e posterior RRS feed

  • Pergunta

  • boa noite,
    existe uma tabela com as seguintes informaçoes

    campo,campo1,campo2,campo3
    1              1       16           Ativo
    2              1       16          Cancelado
    3              1       16          Ativo


    estou montando um select para buscar todos os registros onde campo1 e a chave  o campo2 = 16 e  campo3 esteja cancelado, mas eu preciso descobrir  se existe um registro anterior ativo e um registro posterior ativo ?

    domingo, 13 de setembro de 2009 22:53

Todas as Respostas

  • Boa Noite,

    Um bom começo é informar qual SQL Server você está utilizando para que sabermos que recursos temos à mão.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    A armadilha do Backup Diferencial – O que fazer para evitá-la ?
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!719.entry
    Classifique as respostas. O seu feedback é imprescindível
    segunda-feira, 14 de setembro de 2009 02:35
  • Airto,

    Você pode fazer da seguinte forma:
    select campo1, campo2, campo3,
    case
      when ( select count(*) 
                 from tabela 
                 where campo2 = 16 
                  and campo3 = 'Ativo'
                  and idCampo < tb.idCampo) > 0 then 'Sim'
      else 'Não' 
      end as Anterior,
    case
      when ( select count(*) 
                 from tabela 
                 where campo2 = 16 
                  and campo3 = 'Ativo'
                  and idCampo > tb.idCampo) > 0 then 'Sim'
      else 'Não' 
      end as Posterior
    from tabela as tb
    where campo2 = 16 
     and campo3 = 'Cancelado'
    


    Carlos Eduardo Pieren - MCP
    segunda-feira, 14 de setembro de 2009 15:33
  • Airto,

    Verifique se o exemplo do Carlos ajudou!!!
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    segunda-feira, 14 de setembro de 2009 23:37