2

我有一个结构类似的数据库

用户:

    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

假日类型:

    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
)

但我需要一个月内所有日期的列表,并且此查询检索到的数据应放在该日期的行中。请帮助...我非常需要它。

4

2 回答 2

0

看看在ssrs 图表的 sql 查询表达式中处理不存在的值

您需要一个包含日期的表才能完成这项工作(或者您可以使用存储过程/公用表表达式或其他动态生成日期的方法)。

于 2012-04-09T07:42:56.637 回答
0

您需要为报表创建一个视图,其中包含员工表、出勤表、薪水或支付表(如果有)和您的班次表,创建一个视图并将该视图调用到报表中,并在报表中创建一个函数查看器并给它一个查询以从该视图中选择,如果您需要任何帮助,请告诉我。

于 2013-06-13T06:53:54.883 回答