Я импортирую данные в таблицу базы данных из текстовых (.txt) файлов. Из-за этого текстового файла есть только данные о посещаемости, например, если кто-то присутствует в тот день или поменяет свою идентификационную карту на устройство для присутствия, будут сохранены только данные за этот день.
Теперь я пытаюсь экспортировать / представлять данные таким образом, чтобы запрос должен возвращать все значения, если кто-то не представляет, его данные должны отображаться так: «Его ID и день посещения будут отображаться, но время входа / выхода с нулевым или нулевым значением»
Я уже пробовал с UNION / UNION ALL и JOIN, но мой результат не соответствовал моим ожиданиям.
Результат я получаю: -
Результат, который я ожидал: -
AttendDate | Emplid | EmplName | OutTime | InTime
2019-06-27 | SAO-21-001| Suman Mondol| 14:53:47 |13:28:34
2019-06-27 | SAO-21-001| Suman Mondol| 00:00:00 |00:00:00
2019-06-29 | SAO-21-001| Suman Mondol| 13:17:12 |9:08:48
Я попытался выполнить следующий запрос для этого:
Select distinct c.Date as Attendate
,t.EmplId
,t.Name
,t.AttendTimeMax
,t.AttendTimeMin
from AccessAttenHO t Right Outer JOin dbo.HRCalendar c on t.AttendDate=c.Date
where c.Date between '2019-06-01' and '2019-06-30'
order by t.EmplId;
и основная таблица " AccessAttenHO " Заполните данные следующим образом:
Insert into AccessAttenHO(EmplId,Name,AttendDate,AttendTimeMax,AttendTimeMin, IsLate,UserId,TranDate,BranId,AttendType,DeptId)
select HREmployee.emplid,
HREmployee.EmplFirstName,
TempAttendImport.AttendDate,
MAX(CAST(TempAttendImport.AttendTime as time))maxtime,
MIN(CAST(TempAttendImport.AttendTime as time))mintime,
(case
when HREmployee.AttendType='General' and (MIN(cast(AttendTime as time))) >=CAST('09:16:00' AS time)
THEN 'T'
ELSE 'F'
END) ISLATE , TempAttendImport.UserId,TempAttendImport.TrnsDate,HREmployee.BranId,HREmployee.AttendType,HREmployee.DeptId
from TempAttendImport, HREmployee
where TempAttendImport.EmplId =HREmployee.IDCARDNO
group by HREmployee.emplid,TempAttendImport.AttendDate,HREmployee.EmplFirstName, HREmployee.AttendType,TempAttendImport.UserId,TempAttendImport.TrnsDate,HREmployee.BranId,HREmployee.AttendType,HREmployee.DeptId
ORDER BY HREmployee.emplid