Расчет с DATEDIFF - PullRequest
       20

Расчет с DATEDIFF

0 голосов
/ 07 марта 2019

Может кто-нибудь объяснить, что делает расчет datediff - case when?
Я не понимаю, что делает then 1 else 0 end.

declare @months table (value varchar(25))

insert into @months values (1)
insert into @months values (2)
insert into @months values (3)
insert into @months values (4)
insert into @months values (5)
insert into @months values (6)
insert into @months values (7)
insert into @months values (8)
insert into @months values (9)
insert into @months values (10)
insert into @months values (11)
insert into @months values (12)

select mem_no
      , eff_dt
      , term_date
      , datediff(month, EFF_DT, TERM_DATE)
      - case when datepart(day, EFF_DT) > datepart(day, TERM_DATE) then 1 else 0 end as active2012,
m.value as [active_month]
from  #temp_eligibles, ,@months m
where 
m.value between datepart(m,EFF_DT) and datepart(m,term_date) and
EFF_YR = '2012'
...