2012-04-09 2 views
2

ich eine Datenbank mit Struktur haben wieSQL Server Query für Mitarbeiter weise monatlichen Anwesenheitsbericht

Benutzer:

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 

Abteilungen:

dpt_id 
    dpt_name 
    dpt_desc 

Abschnitte:

sec_id 
    sec_dpt_id 
    sec_name 
    sec_desc 

Bezeichnungen:

dsg_id 
    dsg_sec_id 
    dsg_name 
    dsg_desc 

Mitarbeiter:

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 

Verschiebungen:

sft_id 
    sft_name 
    sft_from 
    sft_to 
    sft_desc 

Blätter:

lev_id 
    lev_emp_id 
    lev_frm 
    lev_to 
    lev_desc 

Urlaub:

hld_id 
    thl_tp_id 
    hld_st_dt 
    hld_end_dt 
    hld_cmnt 

holiday_types:

hld_tp_id 
    hld_tp_name 
    hld_tp_desc 

Teilnahme:

att_id 
    att_emp_id 
    att_time 
    att_date 
    att_dir 

Kann mir jemand helfen, wo in der Zeit Mitarbeiter wiesen monatlichen Anwesenheitsbericht zu produzieren Abfragen und Out-Zeit für jedes Datum und "abwesend" würde für abwesende Tage geschrieben werden verfügbar sein?

Mein Bericht wird wie folgt sein:

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  

ich bisher getan haben:

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 
) 

Aber ich brauche eine Liste aller Termine eines Monats und die Daten, die von dieser Abfrage abgerufen sollten auf die Zeile dieses Datums gesetzt werden. Bitte, Hilfe ... Ich brauche es dringend.

+0

Ich kann alle Spalten außer dem Datum abfragen. Ich kann keine Liste von Daten eines bestimmten Monats neben allen anderen Feldern anzeigen. – Raihan

+1

bitte posten Sie Ihre Anfrage. – Vikram

+0

Welche Tabelle enthält das Datum? –

Antwort

0

Sie müssen eine Ansicht für den Bericht, die Ansicht, die die Mitarbeitertabelle, die Anwesenheitstabelle, das Gehalt oder die Auszahlungstabelle enthält (falls vorhanden) und Ihre Verschiebungstabelle erstellen, eine Ansicht erstellen und diese Ansicht für den Bericht aufrufen Funktion in der Berichtsanzeige und geben Sie eine Abfrage aus dieser Ansicht auswählen, lassen Sie mich bitte wissen, wenn Sie Hilfe benötigen.

Verwandte Themen