Sql 按月分组填写考勤表

Sql 按月分组填写考勤表,sql,oracle,oracle-apex,Sql,Oracle,Oracle Apex,我有一张记录每天出勤情况的桌子 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, "STA

我有一张记录每天出勤情况的桌子

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年每个月员工休病假的数量\u id=1001?

您可以尝试以下查询:

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

编辑您的问题并提供示例数据和所需结果。