Как получить отсутствующие дни, когда дней нет в таблице журнала?
Мне нужно получить отсутствующие дни из таблицы #dates, Если дней нет в таблице журнала
любая помощь будет оценена по достоинству
Что я уже пробовал:
Declatr @DateT Table(D Date); select @d1 = '10/1/2013',@d2= '10/31/2013'; ;with dates ( date ) as ( select @d1 union all select dateadd(d,1,date) from dates where date < @d2 ) insert into @DateT select date as CountedDays from dates ; Select distinct ID,convert(time,Log_D),Late,EarlyOut,AbsentOne,Day(Log_D) as day1 From(SELECT m.ID,L.Log_D,L.C,T.EnterAllow_FD,W.FirstStartTime,T.Late_FD,T.EarlyOut_FD,T.OutAllow_FD,W.FirstEndTime,a.StartDate,a.EndDate,W.id WID, (CASE WHEN convert(time,L.Log_D)>Dateadd(mi,T.Late_FD,W.FirstStartTime) and convert(time,L.Log_D)<Dateadd(mi,T.EnterAllow_FD+T.Late_FD,W.FirstStartTime) and COUNT(*) OVER (PARTITION BY L.EmpId,day(L.Log_D)) = 2 and L.C =1 then 'ت'end )as Late, (CASE WHEN convert(time,L.Log_D)<Dateadd(mi,-T.EarlyOut_FD,W.FirstEndTime) and convert(time,L.Log_D)>Dateadd(mi,-(T.EarlyOut_FD+T.OutAllow_FD),W.FirstEndTime)and COUNT(*) OVER (PARTITION BY L.EmpId,day(L.Log_D)) = 2 and L.C =2 then 'خ,م'end )as EarlyOut, (CASE WHEN (COUNT(*) OVER (PARTITION BY L.EmpId,day(L.Log_D)) < 2) or (convert(time,L.Log_D)>Dateadd(mi,T.EnterAllow_FD+T.Late_FD,W.FirstStartTime ) and convert(time,L.Log_D)<Dateadd(mi,-(T.EarlyOut_FD+T.OutAllow_FD),W.FirstEndTime)) THEN 'غ' END) as [AbsentOne] from WorkPeriod W,LogT L full join MinimumInfoT m on m.ID =L.EmpId ,TimeRulesT T,WorkPeriod a2 join WorkPeriod a on a2.id=a.PeridNo where month(L.Log_D) =10 and year(L.Log_D) =2013 and L.C in(1,2) and L.Log_D not Between a.StartDate and a.EndDate and M.ID =L.EmpId and W.id =m.W_Period and W.id=T.WorkPeriodID and W.id=a.PeridNo) as tt,@DateT T2 order by ID,day1