我有一个数据库,其结构如下
用户:
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_cmntholiday_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
)但是我需要一个包含一个月所有日期的列表,并且此查询检索到的数据应该放在该日期的行上。求求你帮帮我。我非常需要它。
发布于 2012-04-09 15:42:57
看一看Handling non existent values in sql query expression for ssrs chart
您需要一个包含日期的表来执行此操作(或者您可以使用存储过程/公用表表达式或另一种动态生成日期的方法)。
发布于 2013-06-13 14:53:55
您需要为报表创建一个视图,该视图包含员工表、考勤表、工资或支付表(如果有的话)以及您的班次表,创建一个视图并调用报表的视图,然后在报表查看器中创建一个函数并对其进行查询以从该视图中进行选择,如果您需要任何帮助,请告诉我。
https://stackoverflow.com/questions/10069763
复制相似问题