2012-04-09 67 views
2

我有結構的數據庫一樣SQL Server查詢員工明智每月出勤報告

用戶:

usr_id 
    usr_fname 
    usr_lname 
    usr_uname 
    usr_pass 

organizarion:

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 
) 

但我需要一個月的所有日期的列表,並通過此查詢檢索到的數據應該放在那天的排上。 請幫忙...我非常需要它。

+0

我可以查詢除日期以外的所有列。我無法顯示特定月份的日期列表,但不包含所有其他字段。 – Raihan 2012-04-09 06:36:59

+1

請發佈您的查詢。 – Vikram 2012-04-09 06:37:35

+0

什麼表格包含日期? – 2012-04-09 06:38:18

回答

0

您需要查看報告,查看包含,員工表,考勤表,薪資表或薪資表(如果有的話)以及您的班次表,製作一個視圖並將該視圖調用到報表中,然後製作一個功能在報告查看器中,並給它一個查詢來選擇該視圖,請讓我知道你是否需要任何幫助。