2016-05-16 6 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; 

にはどうすれば従業員IDとステータスの月次&毎年のグループ化を与え、単純なSQL文を書くのですか?ステータスには現在の病気などの値があります。 例: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 
関連する問題