Pular para o conteúdo
Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • #84721
    Tiago_BB
    Participante

      Ola pessoal.

      Estou com o seguinte problema:

      Tenho uma tabela CALENDARIO coma seguinte estrutura e dados:

      DATA | FERIADO
      20081223 0
      20081224 1
      20081225 2

      O que acontece, estou fazedno um select que traga uma data… caso tal data ( 20081225 ) feriado = 2 , devo verificar se a data anterior ( 20081224 ) o feriado é 0, senão, verificar se a anterior é igual a 0… até que sim…

      Como que eu posso fazer isso no SQL.

      Atenciosamente,
      Tiago

      #84725
      Avatar photoLeonardo Litz
      Participante

        Utilize um while….

        Coisa do tipo:

        while v_feriado > 0 loop

        select count(*)
        into v_feriado
        from calendario
        where data = p_data
        and feriado = ‘S’;

        end loop;

        Vlw Leonardo Litz

        #84726
        Avatar photoLeonardo Litz
        Participante

          Ah faltou decrementar a data

          while v_feriado > 0 loop

          select count(*)
          into v_feriado
          from calendario
          where data = p_data
          and feriado = ‘S’;

          p_data := p_data – 1;

          end loop;

          Caso vc tenha que verificar se o proximo dia é feriado então incremente

          #84728
          Tiago_BB
          Participante

            Consegui resolver!!!

            Ficou assim:

            SELECT TOP 1 DATA
            FROM CALENDARIO
            WHERE DATA <= 20081225
            AND FERIADO = 0
            ORDER BY DATA DESC

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