none
Intervalo entre datas RRS feed

  • Pergunta

  • Como fazer para que o retorno do primeiro registro da coluna intervalo seja zero do código abaixo, ao invés de NULL?

    id    data                       intervalo

    1    2014-06-20 .........NULL
    2    2014-08-12 .........53
    3    2014-09-02 .........21
    4    2014-09-17 .........15

     
    with CTE_RN as
    (
        select
            *,
            ROW_NUMBER() OVER(ORDER BY Data) as RN
        from Tabela
    )

    select
         t.ID,
         t.Data,
         DATEDIFF(DAY, a.Data, t.Data) as Intervalo
    from CTE_RN as t
    left join CTE_RN as a
        on a.RN = t.RN - 1
    sábado, 16 de maio de 2015 22:57

Respostas

Todas as Respostas

  • Boa noite !

    Você pode utilizar a função isnull do sql server

    Veja um exemplo: https://msdn.microsoft.com/pt-br/library/ms184325.aspx

    Qualquer coisa marca como resposta aí.

    Obrigado

    Marco

    • Marcado como Resposta Wilson Boris domingo, 17 de maio de 2015 13:50
    domingo, 17 de maio de 2015 01:30
  • Eu precisei incluir uma tabela, porém retorna com erro " The column 'id' was specified multiple times for 'CTE_RN',

    teria alguma recomendação?

    DECLARE @cod_An as int
    with CTE_RN as
    (
        select
            *,
            ROW_NUMBER() OVER(ORDER BY data) as RN
        from Prog B, Dia E
        where E.cod_anima=@cod_An and
              B.cod_Dia = E.id   
    )
    select
         t.ID,
         t.data_atividade,
          ISNULL( DATEDIFF(DAY, a.data, t.data), 0.00) AS Intervalo     
    from CTE_RN as t
    left join CTE_RN as a
        on a.RN = t.RN - 1

    quinta-feira, 21 de maio de 2015 17:02