2016-05-16 67 views
-1

我有一張記錄每日考勤的表格。考勤表按月份分組

CREATE TABLE "DAILY_ATTENDANCE" (
    "SERIAL_NO" NUMBER(10,0), 
    "EMPLOYEE_ID" NUMBER(4,0), 
    "FIRST_NAME" VARCHAR2(100), 
    "MIDDLE_NAME" VARCHAR2(100), 
    "LAST_NAME" VARCHAR2(100), 
    "ATTENDANCE_DATE" DATE, 
    "STATUS" VARCHAR2(100) DEFAULT 'PRESENT', 
    "MONTH" VARCHAR2(100), 
    "YEAR" VARCHAR2(100), 
    CONSTRAINT "DAILY_ATTENDANCE_PK" PRIMARY KEY ("SERIAL_NO") ENABLE, 
    CONSTRAINT "DAILY_ATTENDANCE_UK1" UNIQUE ("EMPLOYEE_ID", "ATTENDANCE_DATE")  
    ENABLE 
); 

create or replace trigger "DAILY_ATTENDANCE_T5" 
    BEFORE insert or update on "DAILY_ATTENDANCE" 
    for each row 
    begin 
     :new.month:= to_char(:new.ATTENDANCE_DATE, 'month') ; 
     :new.year:= to_char(:new.ATTENDANCE_DATE, 'YYYY') ; 
    end; 

我怎樣寫一個簡單的SQL語句,讓員工ID和狀態的月度&每年的分組?身份有價值如現在,病假等 例如:找到2015年每個月employee_id = 1001採取的病葉數量?

+0

編輯你的問題,並提供樣本數據和預期的結果。 –

回答

0

你可以試試下面的查詢:

select a.year,a.month,a.employeeId,count(*) 
from 
(select * from DAILY_ATTENDANCE where status ='sickleave')a 
group by a.year,a.month,a.employeeId