У меня есть таблица со следующими записями
DateIn TimeIn
----------------------------
2019-02-01 09:31:00.0000000
2019-02-02 09:35:00.0000000
2019-02-04 09:27:00.0000000
2019-02-05 09:34:00.0000000
2019-02-06 09:32:00.0000000
2019-02-09 09:38:00.0000000
2019-02-11 09:35:00.0000000
2019-02-12 15:09:00.0000000
2019-02-13 09:31:00.0000000
2019-02-14 09:35:00.0000000
2019-02-15 09:35:00.0000000
2019-02-16 09:37:00.0000000
2019-02-18 09:33:00.0000000
2019-02-19 09:31:00.0000000
Итак, 2019-02-03,2019-02-07,2019-02-08,2019-02-10,2019-02-17 являютсяпропущенные даты
, поэтому я хочу получить результат в следующем формате
DateIn TimeIn
----------------------------
2019-02-01 09:31:00.0000000
2019-02-02 09:35:00.0000000
2019-02-03 null
2019-02-04 09:27:00.0000000
2019-02-05 09:34:00.0000000
2019-02-06 09:32:00.0000000
2019-02-07 null
2019-02-08 null
2019-02-09 09:38:00.0000000
2019-02-10 null
2019-02-11 09:35:00.0000000
2019-02-12 15:09:00.0000000
2019-02-13 09:31:00.0000000
2019-02-14 09:35:00.0000000
2019-02-15 09:35:00.0000000
2019-02-16 09:37:00.0000000
2019-02-17 null
2019-02-18 09:33:00.0000000
2019-02-19 09:31:00.0000000
Для этого я создал функцию 'GetAllDates', которая возвращает все даты между данными датами, и использовал эту функцию следующим образом
Select
TA.DateIn, TA.TimeIn
from
[ES].[getAllDates]('20190201','20190228') DD
left outer join
[ES].[tblAttendance] TA on Cast(TA.DateIn as date) = cast(DD.date as date)
where
TA.PersonId = 21
Этот запрос возвращает следующие результаты:
DateIn TimeIn
----------------------------
2019-02-01 09:31:00.0000000
2019-02-02 09:35:00.0000000
2019-02-04 09:27:00.0000000
2019-02-05 09:34:00.0000000
2019-02-06 09:32:00.0000000
2019-02-09 09:38:00.0000000
2019-02-11 09:35:00.0000000
2019-02-12 15:09:00.0000000
2019-02-13 09:31:00.0000000
2019-02-14 09:35:00.0000000
2019-02-15 09:35:00.0000000
2019-02-16 09:37:00.0000000
2019-02-18 09:33:00.0000000
2019-02-19 09:31:00.0000000
Это неверный результат. Пожалуйста, помогите мне найти решение