GOOGLE ADS

воскресенье, 8 мая 2022 г.

Запрос SQL Server для ежемесячного отчета о посещаемости сотрудников

У меня есть база данных со структурой вроде

пользователи:

usr_id
usr_fname
usr_lname
usr_uname
usr_pass

организация:

org_id
org_name
org_address
org_tel
org_web
org_email
org_cat
org_desc

отделы:

dpt_id
dpt_name
dpt_desc

разделы:

sec_id
sec_dpt_id
sec_name
sec_desc

обозначения:

dsg_id
dsg_sec_id
dsg_name
dsg_desc

работник:

emp_id
emp_fname
emp_lname
emp_phone
emp_email
emp_addr
emp_join_dt
emp_salary
emp_card_no
emp_dsg_id
emp_sft_id

смены:

sft_id
sft_name
sft_from
sft_to
sft_desc

листья:

lev_id
lev_emp_id
lev_frm
lev_to
lev_desc

каникулы:

hld_id
thl_tp_id
hld_st_dt
hld_end_dt
hld_cmnt

Holiday_types:

hld_tp_id
hld_tp_name
hld_tp_desc

посещаемость:

att_id
att_emp_id
att_time
att_date
att_dir

Может ли кто-нибудь помочь мне с запросом на составление ежемесячного отчета о посещаемости для сотрудников, где будет доступно время и время отсутствия для каждой даты, а «отсутствие» будет написано для отсутствующих дней?

Мой отчет будет таким:

Date Attendance Shift In time Out time
---------------------------------------------------------------------
1 Present A 12:40 PM 06:40 PM
2 Absent A N/A N/A
3
.
.
.
31 Present B 07:00 PM 11:00 PM
---------------------------------------------------------------------
Total

Я сделал до сих пор:

select att_date, att_time as in_time, shifts.sft_name from attendance
join employee on (attendance.att_emp_id = employee.emp_id)
join shifts on (employee.emp_sft_id = shifts.sft_id)
where att_dir = 'In' and
att_time <= (
select sft_from from shifts
where sft_id = (
select emp_sft_id from employee
where emp_id = 5
)
) and
att_date between '2012-04-01' and DATEADD(MONTH,1,'2012-04-01') and
att_date not in(
select hld_dt from holidays
)

Но мне нужен список всех дат месяца, и данные, полученные этим запросом, должны быть помещены в строку этой даты. Пожалуйста, помогите... Мне это очень нужно.


Решение проблемы

Взгляните на обработку несуществующих значений в выражении запроса sql для диаграммы ssrs.

Вам нужна таблица, содержащая даты, чтобы сделать эту работу (или вы можете использовать хранимую процедуру/общее табличное выражение или другой метод генерации дат на лету).

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...